前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SRS 6封版:GB支持外部SIP服务

SRS 6封版:GB支持外部SIP服务

作者头像
Winlin
发布2024-07-30 20:17:19
3200
发布2024-07-30 20:17:19
举报
文章被收录于专栏:SRS开源服务器
今天,随着最后一个功能合入,SRS 6.0正式封版了。这个功能是SRS 6.0最后一个大功能:GB28181支持外部SIP服务。

Background

先看看SRS 6.0支持的主要功能:

  • • HEVC:支持了RTMP、SRT、FLV、GB等协议的HEVC,HLS和RTC部分支持。
  • • SmartPtr:支持有限的智能指针,支持Source清理,解决内存泄露问题。
  • • GB28181:支持外部SIP服务,srs-sip支持完善的SIP协议。

其他SRS 6.0的重要更新包括:

  • • HTTP-API:支持了HTTP Basic Authentication安全鉴权。
  • • SRT:升级libsrt到v1.5.3。
  • • HLS:支持kickoff播放的客户端。
  • • SSL:支持OpenSSL 3。
  • • RTC:支持FFmpeg原生的opus编解码。
  • • Security:完善IP白名单,支持所有协议。
  • • RTMP:支持丢弃无人机发送的多余的SEI问题。
  • • Player:支持新的WHIP和WHEP播放器。

回顾下之前大版本的核心功能:

  • • SRS5: 支持GB28181-2016协议。
  • • SRS5:支持Prometheus Exporter标准。
  • • SRS5:支持WHIP/WHEP等WebRTC协议。
  • • SRS5:支持Apple Silicon M1、RISCV、Loongson、MIPS、Cygwin64等芯片和平台。
  • • SRS5:支持Coroutine Native的SRT协议。
  • • SRS5:支持动态转发,Dynamic Forward。
  • • SRS4:支持X86、X64、ARM、AARCH64等芯片。
  • • SRS4:WebRTC:支持AV1编解码。
  • • SRS4:支持HTTPS API和Stream。
  • • SRS4:支持WebRTC协议。
  • • SRS3:支持logrotate能力。
  • • SRS3:支持REUSEPORT能力。
  • • SRS3:支持RTMP Origin Cluster功能。
  • • SRS3:支持MPEG-DASH协议。
  • • SRS2:支持HTTP-FLV、HTTP-TS等HTTP流。
  • • SRS2:Security:支持IP白名单。
  • • SRS2:支持HTTP API和HTTP Callback。
  • • SRS2:支持Valgrind检测内存问题。
  • • SRS1:支持RTMP Edge Cluster。
  • • SRS1:支持DVR录制功能。
  • • SRS1:支持RTMP和HLS协议。
  • • SRS1:支持Ingest、Forward、Transcode功能。

实际上SRS 5.0已经支持了GB28181协议,不过只支持了内嵌的SIP服务,而不支持外部的SIP服务,这导致实际上很难把GB大规模应用起来。

目前SRS内置的SIP服务器仅实现了简单的RegisterInvite指令,而要实现GB/T-28181的全部功能,势必会引入复杂的上层业务逻辑。因此,我们开发了一个独立的外置的SIP服务器。而SRS,只需开放几个简单的API接口,这样既保证了其媒体转发服务器的单一属性,又兼顾了与第三方SIP信令服务器对接的需求。

播放器请求SRS-SIP,SRS-SIP向SRS Server申请媒体端口,然后邀请GB28181 Device设备推流。设备推流到SRS后,播放器直接从SRS播放流。下面是几个组件的关系图,详细的交互时序图参考srs-sip

Note: 暂时没有实现鉴权功能,敬请期待。

Usage

摄像头上面的配置方法同上,仅需将SIP服务器地址从SRS改成SRS-SIP。

首先启动SRS,请确认版本为6.0.144+,使用配置conf/gb28181-without-sip.conf,参考Usage。

代码语言:javascript
复制
./objs/srs -c conf/gb28181-without-sip.conf

然后启动SRS-SIP,参考srs-sip。

代码语言:javascript
复制
./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,最终效果如下图所示。

Next

GB外部SIP服务,意味着你完全可以使用自己的SIP服务,支持完善的SIP功能,在实际的应用场景中使用SRS完成GB系统的搭建,灵活扩展系统的能力。

随着SRS 6.0封版,我们正式开始SRS 6.0的版本发布流程,大概经过半年左右的稳定性提升,可以达到稳定版本要求。

同时,我们会创建6.0release的分支,这意味着develop分支正式进入SRS 7.0的新阶段了。预计SRS 7.0的功能包括:

  • • 支持完善的Enhanced RTMP协议,包括AV1和Opus等新标准,以及HDR和RTMP 301等新协议。
  • • 完善WebRTC协议,很快Chrome将支持HEVC,OBS要支持WHIP Simulcast,以及拥塞控制算法的优化。
  • • 完善HLS和DASH协议,支持fMP4切片格式,支持LHLS和LLHLS等协议,提高DASH稳定性。
  • • 改进State Threads,增强coroutine的能力,实现类似Go的WaitGroup和chan的能力,增强工具链。
  • • 其他方向比如Apple VisionPro MV-HEVC,多线程,WebRTC集群能力等。

欢迎一起贡献。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRS开源服务器 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Background
  • Usage
  • Next
相关产品与服务
Prometheus 监控服务
Prometheus 监控服务(TencentCloud Managed Service for Prometheus,TMP)是基于开源 Prometheus 构建的高可用、全托管的服务,与腾讯云容器服务(TKE)高度集成,兼容开源生态丰富多样的应用组件,结合腾讯云可观测平台-告警管理和 Prometheus Alertmanager 能力,为您提供免搭建的高效运维能力,减少开发及运维成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档