当前位置: 首页 > web >正文

Docker配置SRS服务器 ,ffmpeg使用rtmp协议推流+vlc拉流

目录

演示视频

前期配置

Docker配置

ffmpeg配置

vlc配置

下载并运行 SRS 服务

推拉流流程实现


演示视频

2025-05-18 21-48-01

前期配置

Docker配置

运行 SRS 建议使用 Docker

配置 Docker 请移步:

一篇就够!Windows上Docker Desktop安装 + 汉化完整指南(包含解决wsl更新失败方案)_docker汉化-CSDN博客

按安装 Docker 及其汉化脚本:

Releases · asxez/DockerDesktop-CN · GitHub

成功下载 Docker 后:

记得先配置 wslubuntu 和阿里云镜像

点击设置后,输入阿里云镜像:

集成 WSL2 并配置 Ubuntu:

对于 Docker 的使用说明及其介绍,强烈建议大家看看这个视频,讲解精确到位,没啥废话(不像b站老多 Docker 使用视频,都是一个小时起步的):2025最新Docker新手教程,10分钟小白Docker Desktop快速入门实战!_哔哩哔哩_bilibili

ffmpeg配置

建议下载编译好的文件:Builds - CODEX FFMPEG @ gyan.dev

解压到想要解压到的位置后,需要配置环境变量,将 ffmpeg 中的 bin 文件夹目录加到系统变量Path 中,使其能在控制台任何地方执行命令:

vlc配置

官网直接加载解压即可:官方下载:VLC media player,最棒的开源播放器 - VideoLAN

下载并运行 SRS 服务

进入终端管理员窗口,输入:wsl,进入 linux 命令行

输入 SRS 流媒体服务器下载命令(这里的 conf 文件用的镜像自带的,也可扩展配置其他功能):

docker run -it -p 1935:1935 -p 1985:1985 -p 8080:8080 --name srs registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5

(linux)系统输入命令支持换行,用 "\" 即可

回车后会下载 SRS 镜像并运行

docker 端也能看见正在运行:

看到终端管理员一行行出现如下命令,则说明日志持续不断地被生成,这表明 SRS 服务正在运行中,并且它在定期记录其状态更新。若 SRS 服务上有任何业务或者错误,都会及时的显示在终端上:

同时,浏览器输入http://localhost:1985/api/v1/versions/,表明 SRS的 HTTP API 正常工作,并且返回了关于服务器状态、服务信息和可用的 API 路径等详细信息。这说明你的 SRS 服务器已经成功运行,并且可以通过 HTTP API 进行管理和监控。

推拉流流程实现

右键解压后的 vlc 文件夹中的 vlc.exe,选择以管理员页面打开。选择左上角媒体,选择以打开网络串流打开

网络 URL 要输入的地址即为拉流地址

保证 SRS 服务器已启动,并且无任何报错,可以在Docker desktop终端或者终端管理员输入 docker logs srs,(这里的 srs 是你的容器名)没有红色报错就行了。

打开 cmd 终端,输入以下命令用于 ffmpeg 推流(记得换成自己本地视频的路径):

ffmpeg -re -i "F:\car_van\4.mp4" -c:v libx264 -preset veryfast -b:v 500k -maxrate 500k -bufsize 1000k -c:a aac -b:a 128k -ar 44100 -f flv rtmp://localhost/live/livestream

若无报错,在刚才 vlc 网络串流中填写拉流地址:

rtmp://localhost/live/livestream

即可得到拉流视频!

延迟具体没看,但听说是一秒多,后面还会更新更快的 webrtc 推流。本解决方案最大亮点是使用了 Docker 配置 SRS 服务器,直接镜像下载、运行容器,不用像传统那样得配置 SRS 环境配置半天,相信 Docker 会让代码世界更加交融,项目共享更加方便!!!

当然,前面更新过一篇大疆无人机 rtmp 推流的,更换一下网络 ip 后,本方案应该也能适用:
大疆无人机(全系列,包括mini)拉流至电脑,实现直播_大疆无人机直播推流-CSDN博客

http://www.xdnf.cn/news/7107.html

相关文章:

  • 阿克曼-幻宇机器人系列教程4- 建图
  • C#自定义扩展方法 及 EventHandler<TEventArgs> 委托
  • 大语言模型上下文长度:发展历程、局限与技术突破
  • 【RabbitMQ】 RabbitMQ高级特性(二)
  • 2025软考高级信息系统项目管理师英文选择题攻略
  • esp32课设记录(二)lcd屏显示文字与照片
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序源码的去中心化商业扩散研究
  • 智慧园区数据大脑管理平台整体解决方案
  • React中巧妙使用异步组件Suspense优化页面性能。
  • 系统架构设计(十二):统一过程模型(RUP)
  • Spring Boot JWT认证示例项目
  • 【PRB】深度解析GaN中最浅的受主缺陷
  • 基于WebRTC的实时语音对话系统:从语音识别到AI回复
  • 数据结构 -- 树形查找(二)平衡二叉树
  • 【自然语言处理与大模型】向量数据库:Chroma使用指南
  • JAVA EE(进阶)_进阶的开端
  • 仿腾讯会议——退出房间
  • Linux概述:从内核到开源生态
  • DOM知识点
  • 2_Spring【IOC容器中获取组件Bean】
  • 计算机科技笔记: 容错计算机设计05 n模冗余系统 TMR 三模冗余系统
  • 【25软考网工】第六章(7)网络安全防护系统
  • 入门OpenTelemetry——应用自动埋点
  • 20242817-李臻-课下测试:基于商用密码的数字信封协议(AI)
  • 基于 STM32 的手持式安检金属探测器设计与实现
  • AI大模型学习二十六、使用 Dify + awesome-digital-human-live2d + ollama + ChatTTS打造数字人
  • 图绘Linux:基础指令脉络阁
  • 学习黑客Active Directory 入门指南(二)
  • C语言:在 Win 10 上,gcc 如何编译 调用 Tcl/Tk 的C程序
  • Jmeter使用及压测