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

目录

演示视频

前期配置

Docker配置

ffmpeg配置

vlc配置

[下载并运行 SRS 服务](#下载并运行 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博客

相关推荐
冰封之寂8 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
9523610 小时前
Docker - 基础
运维·后端·docker·容器
Code_Ignis10 小时前
docker国内可用源(持续维护)
运维·docker·容器
水中加点糖17 小时前
Java中使用远程PlayWright进行网页接口测试(附Docker部署方式)
java·docker·web测试·devtools·playwright·ai自动化测试
梦梦代码精18 小时前
PHP 还是 Java?LikeShop 多版本对比,附6条落地避坑建议
低代码·docker·开源·代码规范
zerwave19 小时前
深入理解 Docker 的“层”(Layer)
docker·容器
霁月的小屋20 小时前
Docker 工程化实践(二):理解镜像分层与容器文件系统
运维·docker·容器
潘正翔21 小时前
k8s集群命令使用
linux·运维·docker·云原生·容器·kubernetes
Yeauty1 天前
你那条 ffmpeg 命令,一键翻成 Rust builder 代码
开发语言·rust·ffmpeg
码上上班2 天前
docker课程
java·docker·容器