视频云平台——搭建SRS5平台支持GB28181视频流的推送
内容提要
本文介绍了使用SRS-Stack服务搭建GB28181视频推流服务平台的方法,包括环境配置、部署命令和配置步骤,以及GB28181推流配置和测试方法。文章总结了GB28181协议的特点和注意事项。
延伸解读
版本选择:为何推荐SRS 5.0
文章指出,SRS 4.0版本需要特别编译才能支持GB28181协议,且稳定性不足。而SRS 5.0作为最新发布版本,正式支持摄像头SIP注册、自动邀请推流、GB/2016转RTMP、基于TCP的SIP信令和TCP单端口传输媒体等功能。因此,对于需要GB28181推流的场景,直接选用5.0版本可以避免额外编译和潜在的不稳定问题。
部署方式:Docker简化安装流程
文章采用Docker方式部署SRS,步骤包括更新系统、安装Docker、拉取SRS 5镜像、复制配置文件到宿主机、创建并启动容器。这种部署方式简单快捷,且通过端口映射和目录挂载,方便后续修改配置和持久化数据。需要注意的是,启动容器时要开放5060、9000、1935、1985、8080、8000等端口,否则服务无法正常访问。
配置要点:GB28181参数与摄像头设置
在SRS的docker.conf中需增加GB28181配置块,并替换公网IP。摄像头端配置必须满足:音频编码为AAC(采样率44100Hz)、协议版本为GB/T28181-2016、传输协议为TCP。这些限制意味着如果摄像头不支持AAC或仅支持UDP,则无法使用该方案。配置完成后,SRS会自动邀请摄像头推流,可通过FLV、HLS或WebRTC地址播放。
功能限制与延迟问题
文章明确提到,当前SRS 5.0版本不支持语音对讲功能。此外,基于GB28181推流方式的播放延迟较高,基本在1秒以上。因此,该方案更适合对实时性要求不苛刻的内部监控或推送场景。如果业务需要双向语音或更低延迟,可能需要考虑其他协议或方案。
Q&A
SRS 5.0 支持哪些视频协议?
SRS 5.0 支持 RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH 和 GB28181 等协议。
如何用Docker部署SRS 5.0?
部署步骤:1. 更新系统并安装Docker;2. 拉取镜像:docker pull ossrs/srs:5;3. 临时启动容器并复制配置文件到/srs;4. 删除临时容器;5. 创建正式容器,映射端口5060、9000、1935、1985、8080、8000/udp,并挂载/srs/conf和/srs/objs目录。
配置SRS支持GB28181推流需要修改哪些内容?
需要编辑/srs/conf/docker.conf文件,替换【你的公网IP】为实际公网IP,并增加GB28181配置块,包括启用stream_caster、设置caster为gb28181、监听端口9000、输出RTMP地址、设置host和sip监听端口5060及candidate。修改后重启srs5容器。
GB28181推流对摄像头有哪些配置要求?
摄像头配置要求:音频编码必须为AAC,采样率44100Hz;协议版本必须选择GB/T28181-2016;传输协议必须选择TCP,不支持UDP。
如何测试SRS的GB28181推流服务?
测试方法:确保云服务器安全组开放端口5060、9000、1935、1985、8080、8000;访问http://你的公网IP:8080点击连接SRS;摄像头注册后,SRS自动邀请推流,可通过http://localhost:8080/live/设备ID.flv等链接播放,或在SRS管理界面预览。
SRS 5.0 的GB28181功能有哪些限制?
当前版本不支持语音对讲功能;音频编码仅支持AAC;必须使用GB-2016标准和TCP协议;视频延迟较高,基本在1秒以上。