关于RTP和SRT之间的互操作性,你需要了解什么?

简介: 许多企业现有的内部部署广播工作流程都基于RTP协议,但是您是否知道SRT可以通过在不可靠的网络(例如公共网络)上利用SRT隧道传输RTP来扩展这些工作流程的范围?

文 /  Mark Cymontkowski


译 / John


原文

https://www.srtalliance.org/interoperability-between-rtp-and-srt/


许多企业现有的内部部署广播工作流程都基于RTP协议,但是您是否知道SRT可以通过在不可靠的网络(例如公共网络)上利用SRT隧道传输RTP来扩展这些工作流程的范围?

 

在这篇文章中,我们将以一个非常简单的端到端工作流为例向您展示这一过程。下图显示了如何使用RTP将MPEG2传输流从视频编码器发送到受保护网络(例如企业LAN或MPLS租用线路)内的视频解码器。


通过可靠网络(例如局域网)进行RTP传输

image.png

用公共互联网取代专用网络并不是那么简单,因为不可靠的网络会引入数据包丢失和抖动。此外,流在离开或进入企业网络时必须穿过防火墙。这期间内容不再受到保护,非常容易被暴露。

 

RTP通过不可靠的网络传输,如公共互联网

image.png

SRT能够恢复丢失的数据包,也能加密内容和遍历防火墙,这使其非常适合用作跨公共互联网的隧道。

 

以下是它的工作原理:

 

RTP流量被发送到UDP接收器,UDP接收器通过SRT连接转发包括RTP报头在内的MPEG-TS有效载荷;而在接收器端,流作为UDP播放,但由于RTP报头仍然存在,因此它会将本地RTP流发送到现有的RTP解码器。

 

通过SRT在不可靠的网络(例如公共互联网)上隧道传输RTP

image.png

可以使用开源SRT包中的srt-live-transmit示例应用程序来评估此配置。来自编码器的源RTP流必须指向SRT发送器的UDP输入并将目标位置处接收器的UDP输出发送到解码器的RTP输入端口。

 

由于应用程序在从UDP读取数据时期望没有RTP头的MPEG-TS流量,因此默认情况下,它被配置成为每UDP包接收1316字节(7个MPEG-TS帧)的有效载荷。该命令行选项用于增加SRT有效负载大小。

 

这些是发送方(UDP到SRT)和接收方(SRT到UDP)的两个srt-live-transmit示例命令行:

image.png

在该示例中,源(例如RTP编码器)正在将RTP流发送到192.168.0.20:2000。发送方端srt-live-transmit接收包括端口2000上的RTP报头在内的MPEG-TS流并侦听端口1000上的传入接收方连接。在我们的示例中,运行发送方应用程序的计算机的IP地址为192.168.0.10。不同机器上的接收器应用程序作为呼叫者连接到服务器,接收SRT流并将该流作为UDP数据输出到IP地址为192.168.0.30和端口3000的RTP接收器(例如解码器)。

 

注意:使用SRT 1.4版时,在使用srt-live-transmit时不再需要指定有效负载和/或块大小(-c)。

 

类似地,具有FEC(SMPTE 2022-1前向纠错)的冗余RTP可以通过SRT连接进行隧道传输。FEC列和行数据包的额外UDP流可以通过两个额外的SRT连接进行路由。但是,所有三个SRT连接都可以通过使用SRT复用在单个UDP端口上发送,SRT复用是核心协议的一部分。

 

使用SRT复用通过SRT与FEC隧道传输RTP

image.png

我们可以进一步扩展此设置以支持冗余RTP(SMPTE 2022-7)工作流程。由于RTP报头在冗余设置的任一路径上保持不变,因此系统仍可在接收器侧同步多个RTP流。

 

通过SRT隧道传输多路径RTP以实现冗余

image.png

此时,值得一提的是,在IBC2019时间范围内,本机冗余工作流程将进入SRT协议。这意味着每个启用SRT的端点都可以使用此功能从而大大简化了安装。

 image.png

————————————————

版权声明:本文为CSDN博主「LiveVideoStack_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/101043156


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

阿里云视频云@凡科快图.png

相关文章
wireshark解析rtp协议,流媒体中的AMR/H263/H264包的方法
抓到完整的流媒体包之后,用wireshark打开,其中的包可能不会自动映射成RTP+AMR/H263/H264的包,做如下修改操作即可:1.  把UDP 包解析成RTP/RTCP包。选中UDP包,右键,选择Decode As,选RTP2.  把RTP Payload映射成实际的媒体格式。
3048 0
|
9月前
|
编解码 网络协议 程序员
【RTP 传输协议】实时视频传输的艺术:深入探索 RTP 协议及其在 C++ 中的实现
【RTP 传输协议】实时视频传输的艺术:深入探索 RTP 协议及其在 C++ 中的实现
1532 0
|
9月前
|
存储 网络协议 视频直播
音视频学习之rtsp学习rtp协议的理解(rtp)
音视频学习之rtsp学习rtp协议的理解(rtp)
138 0
|
搜索推荐 网络架构
RTP协议应用方案
RTP协议应用方案
104 0
|
安全 网络协议 算法
RTP、RTCP、RTSP 概念
<p style="line-height: 28px; margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; color: rgb(51, 51, 51); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helve
7265 0
|
Web App开发 存储 编解码
【WebRTC原理探索】更进一步,核心组件RTP/RTCP数据传输协议
【WebRTC原理探索】更进一步,核心组件RTP/RTCP数据传输协议
424 0
|
编解码 网络性能优化 网络协议
|
存储 编解码 监控
流媒体传输协议之 RTP
本系列文章将整理各路流媒体传输协议,包括RTP/RTCP,RTMP,希望通过深入理解各个流媒体传输协议的设计细节,对今后流媒体部分的开发工作有一定的启发。
|
数据采集 传感器 编解码
【Android RTMP】RTMPDump 封装 RTMPPacket 数据包 ( 关键帧数据格式 | 非关键帧数据格式 | x264 编码后的数据处理 | 封装 H.264 视频数据帧 )
【Android RTMP】RTMPDump 封装 RTMPPacket 数据包 ( 关键帧数据格式 | 非关键帧数据格式 | x264 编码后的数据处理 | 封装 H.264 视频数据帧 )
290 0
|
计算机视觉 算法 机器学习/深度学习
Qt5&OpenCV3 UDP协议实现实时视频传输与通信
打算在树莓派上挂载摄像头,通过WIFI模块传输到上位机。局域网内带宽不是问题,为了保证实时性,也没有必要进行复杂的视频编码和解码,于是通过截图然后使用UDP协议传输应该是可以的。
3861 1