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

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

640?wx_fmt=jpeg

文 /  Mark Cymontkowski
译 / John
原文
https://www.srtalliance.org/interoperability-between-rtp-and-srt/

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

 

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

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

 
640?wx_fmt=png
 

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

 

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

640?wx_fmt=png

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

 

以下是它的工作原理:

 

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

 

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

640?wx_fmt=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示例命令行:

640?wx_fmt=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

 
640?wx_fmt=png
 

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

 

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

 
640?wx_fmt=png
 

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

 
640?wx_fmt=png

LiveVideoStackCon 2019深圳讲师招募

12月13-14日,LiveVideoStackCon首次来到深圳,将全球前沿多媒体技术实践与深圳本地产业结合,触发技术与商业灵感。欢迎将你的技术实践、踩坑与填坑经历、技术与商业创业的思考分享出来。请将个人资料和话题信息邮件到 speaker@livevideostack.com 或点击【阅读原文】了解成为LiveVideoStackCon讲师的权益与义务,我们会在48小时内回复。

LiveVideoStack 秋季招聘

LiveVideoStack正在招募编辑/记者/运营,与全球顶尖多媒体技术专家和LiveVideoStack年轻的伙伴一起,推动多媒体技术生态发展。同时,也欢迎你利用业余时间、远程参与内容生产。了解岗位信息请在BOSS直聘上搜索“LiveVideoStack”,或通过微信“Tony_Bao_”与主编包研交流。

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

你可能感兴趣的文章
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现update数据实时同步_实际操作05---大数据之Nifi工作笔记0044
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
【Flink】Flink 1.9 版本 web UI 突然没有日志
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>