视频传输协议有哪些: RTMP、SRT、HLS、MPEG-DASH 和 CMAF的优缺点

从 RTMP 到 SRT、HLS、MPEG-DASH 和 CMAF,当前可用的视频传输协议列表非常广泛且令人困惑。作为我们的视频编码基础系列的一部分,我们试图揭开视频编码的一些基础知识的神秘面纱,在这篇文章中,我们将带您了解视频传输协议的作用以及它在视频传输链中的使用位置。我们还将探索当前可用的不同协议以及它们的相对优点和缺点。

什么是传输协议?

让我们从基础开始。本质上,传输协议是一种通信协议,负责建立连接并通过网络连接传递数据。更具体地说,传输协议占据开放系统互连(OSI) 协议模型的第 4 层。国际标准组织的 OSI 模型作为描述网络协议栈的标准模板。此级别的协议提供面向连接的会话和可靠的数据传输。传输协议提供对文件传输和关键任务应用程序必不可少的数据传输保证。重要的是,不同的传输协议可能支持一系列可选功能,包括错误恢复、流量控制和支持重传。

什么时候使用视频传输协议?

在视频工作流程中,传输协议用于贡献、制作、分发和交付。下图说明了实时视频传输链中的这四个不同阶段,贡献有时被称为“第一英里”,而交付有时被称为“最后一英里”。最后一英里阶段是将视频流直接传送给终端用户选择的设备或电视屏幕上的观众。对于传输协议,您可能听说过基于 HTTP 的 HLS、MPEG-DASH 和 CMAF,它们不适用于第一英里视频流,因为它们会给直播制作设施带来太多延迟。

视频传输协议有哪些: RTMP、SRT、HLS、MPEG-DASH 和 CMAF的优缺点

此外,还有专有协议可用,这些协议归一家公司所有,通常需要获得许可才能由客户或 第三方供应商使用。使用封闭专有协议的挑战在于它可能成本高昂(需要持续每月付款),它促进了供应商锁定(防止其他制造商设备之间的互操作性),并且当供应商停止产品时总是存在孤立产品的风险行或停业。

传输层协议

TCP——传输控制协议

TCP 是 Internet 上最常用的传输协议,它通过对数据包进行编号来保证接收方将按顺序接收数据包。收件人将消息发回给发件人,说它收到了消息。如果发送方没有得到正确的响应,它将重新发送数据包以确保接收方收到它们——因为这些确认,TCP 被认为是非常可靠的。还会检查数据包是否有错误。TCP 针对数据完整性而不是及时交付进行了优化,这意味着使用 TCP 发送的数据包以这样一种方式进行跟踪,即在传输过程中不会丢失或损坏数据。在等待无序消息或丢失消息的重新传输时,这可能会导致相对较长的延迟。尽管 TCP 非常适合发送电子邮件和文件,但它不适合流式传输实时视频。

UDP——用户数据报协议

UDP协议的工作方式与 TCP 类似,但没有会降低速度的错误检查。当使用 UDP 时,本质上是数据包的“数据报”被发送给接收方,发送方不会等待以确保接收方收到数据包——它只会继续发送下一个数据包。有时被称为“尽力而为”服务,如果您是接收者并且您错过了一些 UDP 数据包,那就太糟糕了。无法保证您会收到所有数据包,如果您错过了数据包,也无法再次索要数据包。然而,失去所有这些处理开销的好处意味着 UDP 速度很快,并且经常用于时间敏感的应用程序,例如在线游戏或现场直播,在这些应用程序中,感知到的延迟比数据包丢失更为严重。 

视频流应用层协议

RTMP – 实时消息协议

最初, RTMP是一种专有协议,最初由 Macromedia(现为 Adob​​e)开发,用于在服务器和 Flash 播放器之间实时传输视频、音频和数据。尽管 Adob​​e 宣布将不再支持 Flash,但 RTMP 仍然是制作工作流程中直播流媒体的常用协议。RTMP 是一种基于 TCP 的连续流技术,依赖于接收方报告的确认。但是,这些确认 (ACK) 不会立即报告给发送方,以保持较低的返回流量。只有在收到一系列数据包后,才会发回 ACK 或 NACK(否定确认)报告。如果该序列中有丢失的数据包,则将重传完整的数据包序列(返回到最后一个 ACK​​)。这种打包过程会显着增加端到端延迟。此外,RTMP 不支持 HEVC 编码流或高级分辨率,因为它由于带宽限制而无法在高比特率下使用。值得注意的是,RTMP 有多种变体,包括通过 TLS/SSL 连接工作的 RTMPS。

RTP——实时传输协议

RTP 是一种用于以单播或多播模式实时传输多媒体数据的互联网协议。RTP 在 UDP 上运行以实现低延迟,虽然它不包括数据包丢失恢复,但它具有在与RTP控制协议(RTCP)结合使用时补偿任何轻微数据丢失的机制。当 RTP 承载媒体流(音频和视频)时,RTCP 用于监控传输统计数据并提供服务质量( QoS) 反馈(即丢失的数据包、往返时间和抖动)并帮助同步多个流。RTP 也是WebRTC使用的传输协议, 一个开放框架的点对点协议,带有 JavaScript API,用于在浏览器之间共享视频。尽管 WebRTC 适用于小组之间的视频会议或封闭网络上的多播流,但它在扩展和可靠地传输广播质量视频方面的能力有限。

RTSP – 实时流协议

RTSP 是一种应用层控制协议,可直接与视频流服务器通信。RTSP 允许观众通过 Internet 远程暂停、播放和停止视频流,而无需本地下载。RTSP 最著名的应用是 RealNetworks RealPlayer,并且仍在应用于各种用途,包括远程摄像机流、在线教育和网络广播。RTSP 需要专门的流媒体服务器,并且不支持内容加密或丢失数据包的重传,因为它依赖于 RTP 协议和 RTCP 来进行媒体流传输。

SRT – 安全可靠的视频传输

SRT 由 Haivision 率先开发, 旨在通过高性能发送器/接收器模块在有损网络上提供 UDP 的低延迟性能,从而最大限度地提高可用带宽。编解码器不可知、开源和免版税,SRT 保证进入网络的数据包节奏(压缩视频信号)与解码器接收到的相同,从而大大简化了解码过程。SRT提供其他功能,包括本机 AES 加密,因此流安全性在链接级别进行管理。它还允许用户通过支持发送和接收模式(与RTMP和和仅支持单一模式的 HTTP)。此外,SRT 可以将多个视频、音频和数据流汇集在一个 SRT 流中,以支持高度复杂的工作流,而不会给网络管理员带来负担。在发送方/接收方模块中,我们结合了检测延迟、数据包丢失、抖动和可用带宽方面的网络性能的能力。高级 SRT 集成可以使用此信息来指导流启动,甚至使端点适应不断变化的网络条件。

SST – 安全流传输

SST 是一项屡获殊荣的网络协议,最初由 Aviwest(现为 Haivision)开发,用于通过蜂窝网络传输视频。凭借其 IP 绑定技术,SST 可确保通过 3G、4G 和 5G 蜂窝网络、LAN、Wi-Fi、卫星和公共互联网进行可靠的广播级视频传输。SST 实时聚合多个网络连接,为高质量视频提供额外的可靠性和更高的带宽。SST 视频比特率也可以实时调整以处理任何带宽波动。

SST 包括内容加密和丢失视频数据的重新传输,以及音频、元数据和通过 DataBridge 技术远程控制视频传输器和 PTZ 摄像机等设备。

WebRTC——Web实时通信

WebRTC 是由 Google 创建并于 2021 年 1 月标准化的开源技术,通常用于视频会议。WebRTC由三个 HTML5 API(“getUserMedia”、“RTCPeerConnection”和“RTCDataChannel”)组成,可在浏览器之间以足够快的速度提供语音和视频低延迟流,以模拟面对面的交流。它还允许视频和音频捕获和播放,而无需下载和安装任何额外的插件。然而,使用 WebRTC 的缺点之一是缺乏可扩展性,因为连接大量用户的大型项目将需要额外的服务器、解决方案或基于云的服务来减轻浏览器的压力。  

WebRTC 得到所有主要浏览器的支持,包括 Microsoft Edge、Google Chrome 和 Mozilla Firefox,并用于支持流行的视频聊天应用程序,例如 Microsoft Teams、Facebook Messenger 和 Google Hangouts。 

HLS——HTTP 实时流媒体

HLS 是 Apple 于 2009 年发布的一种自适应比特率流媒体协议,主要用于视频传输的最后一英里。HLS 内容从 Web 服务器(或原始服务器)传送,并且通常在到达视频播放器之前通过 CDN。HLS 视频内容被分解成单独的块,通常为 10 秒长,这些块被复制并以不同的比特率和分辨率(或配置文件)并行编码。作为一种自适应比特率协议,视频播放器会寻找带宽条件的变化,如果有波动,它可以无缝切换到最适合该时刻的 ABR 配置文件。HLS 支持使用 H.264 或 H.265 (HEVC) 编解码器编码的视频。   

随着 Adob​​e 的 Flash 技术现已停产,由 HLS 传送并通过 HTML5 播放器播放的在线视频已成为通过互联网传送视频的主要方法,主要网络浏览器、移动设备、媒体播放器、服务器甚至一些消费者都支持机顶盒。作为一项 Apple 技术,HLS 是 iOS 设备的主要交付协议。  

MPEG-DASH – 基于 HTTP 的动态自适应流

MPEG-DASH 是由运动图像专家组 (MPEG) 开发的开源协议,并于 2011 年 11 月成为国际标准草案。MPEG-DASH 主要用于通过互联网向观众提供直播和点播视频内容-机顶盒、智能手机、平板电脑和其他设备。MPEG-DASH 具有与 HLS 相同的播放器交付方法,因为它还将内容分解为具有不同编码级联的部分或块,使其适用于最后一英里(OTT)视频交付。  

MPEG-DASH 与编解码器无关。这意味着 MPEG-DASH 不限于使用 H.264 或 HEVC 编解码器,还可以支持其他编解码器,例如 VP8 或 VP9,这有利于以较低的比特率进行更高质量的广播。作为 HLS 的替代 ABR 协议,MPEG-DASH 在 Android 设备上被广泛使用。  

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/26959.html

(1)

发表回复

登录后才能评论