局域网搭建流媒体测试平台 WSL+SRS+OBS
文章目录
前言
在开发一些程序时,经常需要在局域网模拟推流场景,例如:实时流AI分析(行人统计、识别等AI功能),流媒体播放器。在这种情况下,自己搭建一套流媒体平台测试相关功能是非常方便的。
安装WSL
windows wsl2 安装请按照微软官方教程:https://learn.microsoft.com/en-us/windows/wsl/install。
FFmpge
进入以下网址:https://ffmpeg.org/download.html 根据系统进行下载,任意版本即可。
安装OBS
进入以下网址:https://obsproject.com/download 根据界面提示进行安装。
编译SRS
SRS,有提供docker镜像,本篇文章通过获取源码的方式进行编译。喜欢使用docker的可以按照 https://ossrs.net/lts/zh-cn/docs/v6/doc/getting-started 官方文档中进行使用。
- 源码获取
git clone -b develop https://gitee.com/ossrs/srs.git
- 编译,注意需要切换到srs/trunk目录:
cd srs/trunk
./configure
make
- 启动服务器:
./objs/srs -c conf/srs.conf
- 检查SRS是否成功启动,执行命令:
查看SRS的状态
./etc/init.d/srs status
#或者看SRS的日志
tail -n 30 -f ./objs/srs.log
例如,下面的命令显示SRS正在运行:
MB0:trunk $ ./etc/init.d/srs status
SRS(pid 90408) is running. [ OK ]
MB0:trunk $ tail -n 30 -f ./objs/srs.log
[2021-08-13 10:30:36.634][Trace][90408][12c97232] Hybrid cpu=0.00%,0MB, cid=1,1, timer=61,0,0, clock=0,22,25,0,0,0,0,1,0
- windows 访问 SRS 服务页面
执行指令获取IP地址
ifconfig
出现以下内容,选则172.25.201.73类似IP地址,在windows 浏览器中访问 http://172.25.201.73:8080,即可看到SRS服务器的状态
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.25.201.73 netmask 255.255.240.0 broadcast 172.25.207.255
inet6 fe80::215:5dff:fe2c:1850 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:2c:18:50 txqueuelen 1000 (Ethernet)
RX packets 491 bytes 89563 (89.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 32 bytes 3139 (3.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
使用FFmpeg或者OBS进行推流
- FFmpeg 进行推流
ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://172.25.201.73/live/livestream
- OBS 进行推流
- 进入设置页面,直播选项,填写推流地址 ,点击确定。
rtmp://localhost/live/livestream
- 设置视频源
打开下面的页面播放流:
根据实际情况 172.25.201.73 替换为 自己的IP地址
RTMP (by VLC): rtmp://172.25.201.73/live/livestream
H5(HTTP-FLV): http://172.25.201.73:8080/live/livestream.flv
H5(HLS): http://172.25.201.73:8080/live/livestream.m3u8