先看看SRS 6.0支持的主要功能:
其他SRS 6.0的重要更新包括:
回顾下之前大版本的核心功能:
实际上SRS 5.0已经支持了GB28181协议,不过只支持了内嵌的SIP服务,而不支持外部的SIP服务,这导致实际上很难把GB大规模应用起来。
目前SRS内置的SIP服务器仅实现了简单的Register
、Invite
指令,而要实现GB/T-28181的全部功能,势必会引入复杂的上层业务逻辑。因此,我们开发了一个独立的外置的SIP服务器。而SRS,只需开放几个简单的API接口,这样既保证了其媒体转发服务器的单一属性,又兼顾了与第三方SIP信令服务器对接的需求。
播放器请求SRS-SIP,SRS-SIP向SRS Server申请媒体端口,然后邀请GB28181 Device设备推流。设备推流到SRS后,播放器直接从SRS播放流。下面是几个组件的关系图,详细的交互时序图参考srs-sip
Note: 暂时没有实现鉴权功能,敬请期待。
摄像头上面的配置方法同上,仅需将SIP服务器地址从SRS改成SRS-SIP。
首先启动SRS,请确认版本为6.0.144+
,使用配置conf/gb28181-without-sip.conf
,参考Usage。
./objs/srs -c conf/gb28181-without-sip.conf
然后启动SRS-SIP,参考srs-sip。
./bin/srs-sip -sip-port 5060 -media-addr 127.0.0.1:1985 -api-port 2020 -http-server-port 8888
-sip-port
是SIP服务器的端口,默认是5060。GB摄像头和这个SIP服务器通信,完成设备注册等能力。-media-addr
是SRS的媒体服务器地址,SIP服务器返回这个地址给GB摄像头,GB摄像头推流到这个地址。-api-port
是SIP服务器的API端口,默认是2020。这个API是给Player和用户使用的,比如查询设备列表、要求摄像头推流等。-http-server-port
是SIP服务器的Web端口,默认是8888。这个HTTP服务器是提供网页的web服务器,用户通过网页访问摄像头。启动GB28181设备,将SIP服务器地址改成SRS-SIP的地址,端口为5060。
现在,可以通过SRS-SIP内置的网页播放器测试 http://localhost:8888,最终效果如下图所示。
GB外部SIP服务,意味着你完全可以使用自己的SIP服务,支持完善的SIP功能,在实际的应用场景中使用SRS完成GB系统的搭建,灵活扩展系统的能力。
随着SRS 6.0封版,我们正式开始SRS 6.0的版本发布流程,大概经过半年左右的稳定性提升,可以达到稳定版本要求。
同时,我们会创建6.0release的分支,这意味着develop分支正式进入SRS 7.0的新阶段了。预计SRS 7.0的功能包括:
欢迎一起贡献。