关于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

相关文章
|
Ubuntu 安全 Unix
重置Jetson设备的Ubuntu密码:通过挂载根目录到另一个Linux系统
在本文中,我们将介绍如何在忘记Ubuntu 20.04密码的情况下重置密码。我们将通过将Ubuntu的根目录挂载到另一个Linux系统来实现这一目的。我们还将介绍chroot命令的功能。
1073 0
重置Jetson设备的Ubuntu密码:通过挂载根目录到另一个Linux系统
|
搜索推荐 5G 网络性能优化
|
11月前
|
IDE 开发工具 Windows
磁盘损坏导致无法开机怎么办?
电脑无法开机可能是磁盘损坏所致,常见原因包括物理损坏、逻辑错误、接口问题或系统文件损坏。本文详解判断方法与应对措施,帮助你快速定位问题并恢复系统或数据。
|
9月前
|
人工智能 生物认证 数据安全/隐私保护
AI检测器:我们如何识别机器生成的内容?
AI检测器:我们如何识别机器生成的内容?
682 3
|
移动开发 开发者
仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑
仓颉开发语言即将发布一周年,虽已有知名App应用,但教程稀缺且官网文档不够完善。幽蓝君推出系列教程,从零开始系统讲解移动开发。本期介绍常用UI组件:按钮、文本、图片、输入框与搜索框的使用方法及注意事项,帮助开发者快速上手仓颉语言。
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
785 0
|
自然语言处理 算法 JavaScript
模糊搜索:在不确定性中寻找精确结果
模糊搜索作为搜索技术的基础部分,凭借其较强的容错性和高效性,广泛应用于各类场景。然而,在需求越来越复杂的今天,模糊搜索的局限性也逐渐显现,尤其在深层语义理解和复杂查询中。因此,模糊搜索在与语义搜索等新型搜索方式结合的过程中展现了更大的潜力。希望本文对你理解模糊搜索的背景、原理及应用有所帮助,助力你在实际项目中灵活运用这一工具。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
模糊搜索:在不确定性中寻找精确结果
|
数据挖掘 UED
WebSocket在实时体育比分网站中的应用
WebSocket 在实时体育比分网站中用于实时比分更新、动态赛事信息推送、交互式功能(如即时聊天和投票)、赛程提醒与推送通知、比分预测与数据分析,以及多平台支持。通过持久连接,服务器可即时推送比分变化、球员动态、比赛状态等信息,减少延迟并提升用户体验。同时,WebSocket 支持双向通信,使用户能实时互动,确保跨平台的实时数据同步。
376 10
|
Web App开发 编解码 网络协议
WebRTC SDP 详解和剖析
WebRTC 技术体系中,SDP 是看起来简单却坑非常多的点,就像直播中的时间戳几乎占据了 80% 的问题,SDP 也是问题频发的点。这篇文章详细分享了 SDP 的关键点,容易出问题的点,是非常实用的满满的干货。
WebRTC SDP 详解和剖析
Centos7.6 cmake版本升级至3.21.0
Centos7.6 cmake版本升级至3.21.0
1299 0