博客
关于我
关于RTP和SRT之间的互操作性,你需要了解什么?
阅读量:235 次
发布时间:2019-02-28

本文共 1435 字,大约阅读时间需要 4 分钟。

通过SRT隧道实现RTP跨公共网络传输

许多企业现有的内部部署广播工作流程都基于RTP协议,但在面对不可靠的网络(如公共互联网)时,如何安全且高效地扩展这些工作流程的范围?SRT(可靠数据传输协议)提供了一种解决方案,通过在公共网络上建立SRT隧道,实现RTP流的传输。

RTP在可靠网络中的应用

RTP(实时传输协议)是一种常用的视频和音频流传输协议,广泛应用于企业内部部署的视频广播系统中。通过RTP,视频编码器可以将MPEG2传输流发送到受保护网络(如企业LAN或MPLS租用线路)内的视频解码器。这种传输方式在局域网等可靠网络中表现优异,能够确保数据包的完整性和流畅传输。

通过SRT在不可靠网络中传输RTP

然而,当需要将RTP流通过公共互联网传输时,问题就显现了。公共网络的不可靠性可能导致数据包丢失或抖动,同时流在穿过防火墙的过程中可能被未经加密,易受到窃取和篡改的威胁。SRT协议为解决这些问题提供了一种高效的解决方案。

SRT通过在公共互联网上创建隧道,能够将RTP流包装在可靠的数据包中传输。这种方法不仅能够弥补网络的不可靠性,还能确保流的完整性和安全性。SRT的工作原理是将RTP流量发送到UDP接收器,接收器通过SRT连接转发包括RTP报头在内的MPEG-TS有效载荷。接收端则通过SRT连接将流重新发送到RTP解码器,从而实现流的正常播放。

SRT复用与多路径传输

为了进一步优化传输效率,SRT支持复用功能。通过SRT复用,可以在单个UDP端口上发送多个RTP流,包括主要流和冗余流(如SMPTE 2022-7)。这种方式不仅减少了网络带宽的占用,还提高了传输的冗余性和可靠性。

此外,SRT还支持多路径传输。通过将RTP流分发至多个路径,系统可以在接收端重新组合流,确保数据的完整性和流畅性。这种方法特别适用于需要高可用性的场景。

SRT的优势

SRT的主要优势体现在以下几个方面:

  • 网络无关性:SRT能够通过任何类型的网络(包括公共互联网)传输RTP流。
  • 可靠性:SRT能够恢复丢失的数据包,弥补网络的不可靠性。
  • 安全性:SRT支持端到端加密,确保流的安全传输。
  • 防火墙友好性:SRT的流量能够透过防火墙,而不会被破坏。
  • 通过SRT,企业可以在不需要购买专用网络的前提下,实现RTP流的跨网络传输。这不仅降低了传输成本,还为企业提供了更高的灵活性和扩展性。

    示例配置

    要实现上述功能,可以使用开源SRT包中的srt-live-transmit示例应用程序。源RTP流(如来自视频编码器)需要发送到SRT发送器的UDP输入端口(如192.168.0.20:2000)。接收端的SRT解码器则连接到SRT发送器,通过SRT隧道接收流,并将其发送到目标RTP解码器(如192.168.0.30:3000)。

    在配置时,发送方和接收方需要正确设置UDP端口和接收器地址。SRT的默认配置通常是每个UDP包接收1316字节(7个MPEG-TS帧)的有效载荷。为了适应不同的网络条件,可以通过命令行参数调整SRT的有效负载大小。

    未来发展

    随着技术的进步,SRT在IBC2019时间范围内的应用将更加广泛。通过启用SRT功能,企业可以显著简化安装过程,降低运维成本。

    结语

    总之,SRT为企业提供了一种灵活且可靠的解决方案,能够在公共互联网上高效地传输RTP流。无论是单流传输还是多路径传输,SRT都能够满足企业的需求,为多媒体传输带来更高效的体验。

    转载地址:http://tskp.baihongyu.com/

    你可能感兴趣的文章
    npm和yarn的使用对比
    查看>>
    npm如何清空缓存并重新打包?
    查看>>
    npm学习(十一)之package-lock.json
    查看>>
    npm安装 出现 npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT npm ERR! 解决方法
    查看>>
    npm安装crypto-js 如何安装crypto-js, python爬虫安装加解密插件 找不到模块crypto-js python报错解决丢失crypto-js模块
    查看>>
    npm安装教程
    查看>>
    npm报错Cannot find module ‘webpack‘ Require stack
    查看>>
    npm报错Failed at the node-sass@4.14.1 postinstall script
    查看>>
    npm报错fatal: Could not read from remote repository
    查看>>
    npm报错File to import not found or unreadable: @/assets/styles/global.scss.
    查看>>
    npm报错TypeError: this.getOptions is not a function
    查看>>
    npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
    查看>>
    npm淘宝镜像过期npm ERR! request to https://registry.npm.taobao.org/vuex failed, reason: certificate has ex
    查看>>
    npm版本过高问题
    查看>>
    npm的“--force“和“--legacy-peer-deps“参数
    查看>>
    npm的安装和更新---npm工作笔记002
    查看>>
    npm的常用操作---npm工作笔记003
    查看>>
    npm的常用配置项---npm工作笔记004
    查看>>
    npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
    查看>>
    npm编译报错You may need an additional loader to handle the result of these loaders
    查看>>