问题背景:
最近解决一些摄像头上云问题,由于自研播放器有时存在一些播放问题,按照音视频常见问题分析和解决:延时和抖动这篇文章说的定位问题思路,我决定搭建一些RTMP流媒体服务器,供测试用标准播放器如VLC交叉验证。之所以存在这么多奇怪的问题,是因为接上来的摄像头或者平台总是存在一些私有码流或者码流格式不规范导致。下面简单说下RTMP服务器搭建和测试方法,包括FMS和SRS在win和linux下的搭建方法。
说明问题前,看下业务大概的基本模块的部署情况。其次工具和软件已经上传我的git,自行获取即:
说明:
- 摄像头一般都部署在局域网内部或者客户侧;
- 国标GB接入网关部署在公有云服务器,摄像头通过SIP协议注册上来;
- GB接入网关收到摄像头码流后进行转封装将RTP流转成私有流,上传到内部分发服务器;
- 搭建SRS服务器也在公有云服务器上,GB接入网关将拉上来的流进行RTP->FLV转封装,然后同时推送到SRS服务器;
- 允许自研和标准客户端拉流播放;
Linux搭建SRS:
SRS是国内著名的开源项目,提供了丰富的方案将媒体流接入到SRS服务器,同时支持各种协议和封装格式的转换,GIT地址:https://github.com/ossrs/srs,部署和使用起来很简单:
**步骤:
1 . 安装SRS服务器:**
实际我采用了编译源码的方式安装,只需要下面几条命令即可,其它很多功能没有启用,SRS现在性能功能还是比较强大的流媒体服务器,不过只支持li