ffmpeg命令详解_工具使用:利用SRS和FFmpeg搭建流媒体直播和点播系统

问题背景:

最近解决一些摄像头上云问题,由于自研播放器有时存在一些播放问题,按照音视频常见问题分析和解决:延时和抖动这篇文章说的定位问题思路,我决定搭建一些RTMP流媒体服务器,供测试用标准播放器如VLC交叉验证。之所以存在这么多奇怪的问题,是因为接上来的摄像头或者平台总是存在一些私有码流或者码流格式不规范导致。下面简单说下RTMP服务器搭建和测试方法,包括FMS和SRS在win和linux下的搭建方法。

说明问题前,看下业务大概的基本模块的部署情况。其次工具和软件已经上传我的git,自行获取即:

cbdc570a7953904004a96234dc19e512.png

说明:

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目录下即可;

c03fafdacce3c9ad6cd3e9535823d591.png

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 

42d64b5be029f9167d739a68a09c1beb.png

2. 摄像头推流:

这里推流没有利用FFMpeg进行推流,而用我们GB接入网关拉取了摄像头的视频流直接推上来的,本质就是摄像头从局域网注册上来,然后通过SIP请求视频,摄像头通过RTP协议推送视频国标网关,对这部分内容感兴趣的可以留言交流,比较熟悉。

3. VLC验证和测试: 

8c60d1351407e2c941e9e1d6acfba3b4.png

4. Video Player进行验证播放:

736d064a67935d2943fbbae524c519b3.png


Windows搭建FMS:

FMS其实是Adobe的RTMP流媒体服务器,我在本地Windosw搭建了一个,用FFmpeg推流到该服务器,然后用VLC和它们提供的Video Palyer打开进行验证下:

步骤:

1. 安装FMS:

直接一步步安装即可,安装过程注意好端口号1935的填写和用户名即可,如果和本地端口冲突要在安装换个其它端口号,安装成功示意图即浏览器自动弹出播放视频网页说明安装成功,有问题查看下进程和起的1935端口有没有监听即可: 

c52d975d3bb06d8a2e0f55b319e7f7e6.png

贡献几个免费安装序列号:

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端口上

2c18fc088aab3521d06e5c7d1cc67bfd.png

3.用开源的标准播放器进行验证:

A.用推流URL拉流验证,其中用VLC进行了验证

9fd306b3f7548ef7ede365866442445e.png

B.用推流URL拉流验证,其中用Video Player都进行了验证

7022c151f879b72e437b26a30f272afd.png

总结:

通过在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


今天就说这么多,祝您工作顺利!

如果有疑问,你可以在公众号后台发消息咨询我。


feeda505dfbc8339b859a302e41c6b63.png


往期文章回顾:

音视频封装:MP4结构概述和分析工具

音视频解封装:MP4核心Box详解及H264&AAC打包方案

音视频基础知识-时间戳的理解

音视频封装格式:AAC音频基础和ADTS打包方案详解

从人类的第一次直播聊聊视频监控行业

音视频压缩:H264码流层次结构和NALU详解

音视频传输:RTP协议详解和H.264打包方案

音视频封装:FLV格式详解和打包H264、AAC方案(下)

音视频封装:FLV格式详解和打包H264、AAC方案(上)

音视频常见问题分析和解决:延时和抖动


个人转载内容至朋友圈和群聊天,无需特别申请版权许可。

引用转载该订阅号文章,注明文章来源即可。

记得右下角点“在看”,还可以关注该订阅号,防止遗漏推送哦e184fa0f296aae07bbf739c66e96ee40.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值