问题背景:
最近解决一些摄像头上云问题,由于自研播放器有时存在一些播放问题,按照音视频常见问题分析和解决:延时和抖动这篇文章说的定位问题思路,我决定搭建一些RTMP流媒体服务器,供测试用标准播放器如VLC交叉验证。之所以存在这么多奇怪的问题,是因为接上来的摄像头或者平台总是存在一些私有码流或者码流格式不规范导致。下面简单说下RTMP服务器搭建和测试方法,包括FMS和SRS在win和linux下的搭建方法。
说明问题前,看下业务大概的基本模块的部署情况。其次工具和软件已经上传我的git,自行获取即:
说明:
1. 摄像头一般都部署在局域网内部或者客户侧;
2. 国标GB接入网关部署在公有云服务器,摄像头通过SIP协议注册上来;
3. GB接入网关收到摄像头码流后进行转封装将RTP流转成私有流,上传到内部分发服务器;
4. 搭建SRS服务器也在公有云服务器上,GB接入网关将拉上来的流进行RTP->FLV转封装,然后同时推送到SRS服务器;
5. 允许自研和标准客户端拉流播放;
Linux搭建SRS:
SRS是国内著名的开源项目,提供了丰富的方案将媒体流接入到SRS服务器,同时支持各种协议和封装格式的转换,GIT地址:https://github.com/ossrs/srs,部署和使用起来很简单:
步骤:
1. 安装SRS服务器:
实际我采用了编译源码的方式安装,只需要下面几条命令即可,其它很多功能没有启用,SRS现在性能功能还是比较强大的流媒体服务器,不过只支持linux部署。
A. git下载源码命令是:
git clone https://github.com/ossrs/srs.git
B. 如果上传了Zip包解压即可,然后放到/usr/local/srs目录下即可;
C. 进入trunk目录,执行:
./configure && make
其中支持开启的功能可以用./configure -h查询
D. 编译和安装,有时需要一些依赖第三方也需要安装:
make
make install
E. 拉起程序命令:
./objs/srs -c conf/srs.conf
F. 检查程序和端口
ps -ef|grep srs 和netstat -ano|grep 1935
2. 摄像头推流:
这里推流没有利用FFMpeg进行推流,而用我们GB接入网关拉取了摄像头的视频流直接推上来的,本质就是摄像头从局域网注册上来,然后通过SIP请求视频,摄像头通过RTP协议推送视频国标网关,对这部分内容感兴趣的可以留言交流,比较熟悉。
3. VLC验证和测试:
4. Video Player进行验证播放:
Windows搭建FMS:
FMS其实是Adobe的RTMP流媒体服务器,我在本地Windosw搭建了一个,用FFmpeg推流到该服务器,然后用VLC和它们提供的Video Palyer打开进行验证下:
步骤:
1. 安装FMS:
直接一步步安装即可,安装过程注意好端口号1935的填写和用户名即可,如果和本地端口冲突要在安装换个其它端口号,安装成功示意图即浏览器自动弹出播放视频网页说明安装成功,有问题查看下进程和起的1935端口有没有监听即可:
贡献几个免费安装序列号:
Flash Media Server 3.5(FMS) 序列号1374-5568-0192-3684-3402-70241374-5232-8277-3901-0946-6727
2. FFmpeg推流:
本地准备一段FLV或者MP4文件,用FFmpeg转封装然后直接向该FMS服务器1935端口推流即可:
A. 准备一段推流文件avier1_avc_aac.mp4,利用FFmpeg推流:
B. 推流命令就是:
ffmpeg.exe -re -stream_loop -1 -i avier1_avc_aac.mp4 -acodec aac -f flv rtmp://127.0.0.1:1935/live/1
其中这段命令就是把本文件转封装为FLV文件,再循环推流到本地的FMS1935端口上
3.用开源的标准播放器进行验证:
A.用推流URL拉流验证,其中用VLC进行了验证
B.用推流URL拉流验证,其中用Video Player都进行了验证
总结:
通过在Win本地和公网Linux部署FMS和SRS就可以搭建一个点播&直播系统,对排查一些码流或者播放问题非常有帮助,现在这种现成工具非常多,使用起来也方便,后面这个系列还会继续介绍其它开源项目和工具。
参考项目和网址:
https://github.com/ty6815
https://github.com/ossrs/srs
https://www.jianshu.com/p/ce57f108fdaa
https://blog.csdn.net/u014359108/article/details/53114333
今天就说这么多,祝您工作顺利!