文章

探索视频流媒体技术(2):了解流媒体协议

系列介绍视频流媒体技术相关的基础知识。

探索视频流媒体技术(2):了解流媒体协议

本文转自微信公众号 关键帧Keyframe,推荐您关注来获取音视频、AI 领域的最新技术和产品信息

微信公众号 微信扫码关注我们

您还可以加入知识星球 关键帧的音视频开发圈 来一起交流工作中的技术难题、职场经验

知识星球 微信扫码加入星球

这个系列文章我们来介绍一位海外工程师如何探索视频流媒体技术,对于想要开始学习音视频技术的朋友,这些文章是份不错的入门资料,这是第 2 篇:了解流媒体协议。

在视频流媒体的世界里,选择合适的协议对于为观众提供无缝且高质量的体验至关重要。每种协议都有其优势和理想的用例,这取决于延迟、可扩展性和网络条件等因素。在本文中,我们将探索最常用的流媒体协议,了解它们的工作原理,比较它们的特点,并为选择最适合您需求的协议提供指导。

1、HTTP Live Streaming (HLS)

  • 工作原理:HLS 通过将视频流分解成称为片段的小块,然后通过 HTTP 将这些片段传输给观众。这些片段列在一个清单文件(播放列表)中,客户端使用该文件按顺序请求视频片段。
  • 技术细节
    • 片段:视频以多种码率编码,并被分成片段(通常每个片段 6-10 秒)。
    • 清单文件:一个 M3U8 文件,列出可用的流和片段。
    • 自适应码率流式传输:根据观众的网络条件自动在不同码率的流之间切换。
  • 关键特性
    • 可扩展性:能够高效地处理大量并发观众。
    • 广泛的兼容性:大多数设备和浏览器都支持。
  • 用例:适用于像 Netflix 这样的 VOD 服务以及需要广泛设备兼容性的直播平台。

HLS

2、Dynamic Adaptive Streaming over HTTP (DASH)

  • 工作原理:与 HLS 类似,DASH 也将视频流分解成片段,并通过 HTTP 传输。然而,它使用一个基于 XML 的清单文件,称为 MPD(媒体呈现描述),来管理流。
  • 技术细节
    • 片段:以多种码率编码,并被分成片段。
    • MPD 文件:列出流、片段及其属性。
    • 编解码器无关性:可以与各种编解码器(如 H.264、H.265 和 VP9)一起工作。
  • 关键特性
    • 灵活性:可以与各种编解码器一起工作,提供灵活性。
    • 互操作性:旨在跨不同设备和平台工作。
  • 用例:适用于直播和 VOD,特别是在设备种类繁多的环境中。

3、Real-Time Messaging Protocol (RTMP)

  • 工作原理:RTMP 通过 TCP 维持持久连接,并通过将视频数据分解成小数据包来实现低延迟通信。这是通过使用 RTMP 编码器将视频和音频数据分解成更小的数据包来完成的。这些数据包从编码器发送到流媒体服务器,在那里它们被存储并准备分发。
  • 技术细节
    • 持久连接:在客户端和服务器之间保持恒定的连接。
    • 数据包:视频数据被分解成更小的数据包或片段。
    • 低延迟:以最小的延迟传输内容。
  • 关键特性
    • 客户端到服务器流式传输:通常用于将视频从创作者的设备流式传输到流媒体服务器。
    • 低延迟:以最小的延迟传输内容。
    • 交互式流式传输:支持直播聊天和观众互动等功能。
  • 用例:通常用于像 Twitch 和 YouTube Live 这样的直播平台。

4、Real-Time Streaming Protocol (RTSP)

  • 工作原理:RTSP 用于在端点之间建立和控制媒体会话。它主要用于 IP 摄像头和监控系统。
  • 技术细节
    • 会话控制:允许控制播放功能,如播放、暂停和停止。
    • TCP/UDP:可以使用这两种协议进行数据传输。
    • 按需流式传输:适用于需要实时控制媒体的环境。
  • 关键特性
    • 网络适应性:能够高效地处理网络变化。
    • 控制:提供对媒体会话的精细控制。
  • 用例:适用于闭路电视、IP 摄像头和其他监控应用。

5、Secure Reliable Transport (SRT)

  • 工作原理:SRT 使用 UDP 进行数据传输,并添加错误校正、加密和数据包丢失恢复机制,以确保可靠和安全的流式传输。
  • 技术细节
    • 基于 UDP:比 TCP 更快的传输速度和更低的延迟。
    • 错误校正:使用 ARQ(自动重传请求)和 FEC(前向纠错)进行可靠传输。
    • 加密:使用 AES 加密进行安全传输。
  • 关键特性
    • 安全传输:使用 AES 加密进行安全数据传输。
    • 错误校正:减少数据包丢失和抖动,确保稳定的流式传输。
  • 用例:适用于远程制作和通过公共互联网连接的直播。

6、WebRTC

  • 工作原理:WebRTC 允许浏览器和设备之间的点对点通信,促进实时视频、音频和数据共享。
  • 技术细节
    • 点对点:客户端之间的直接连接,减少服务器负载。
    • STUN/TURN 服务器:用于 NAT 穿越和中继,当直接连接不可行时。
    • 信令服务器:但浏览器并不能神奇地找到彼此。一个单独的信令服务器充当媒人。
    • DTLS/SRTP:用于安全传输的加密协议。
  • 关键特性
    • 低延迟:提供近乎即时的通信。
    • 点对点:促进直接连接,减少服务器负载。
  • 用例:适用于视频会议和像 Google Meet 和 Zoom 这样的交互式应用。

7、WebRTC HTTP Ingestion Protocol/HTTP Egress Protocol (WHIP/WHEP)

  • 工作原理:WHIP 和 WHEP 是 WebRTC 的扩展,旨在通过 HTTP 简化 WebRTC 流的摄取和传输过程。
  • 技术细节
    • WHIP:通过 HTTP 用于信令,简化 WebRTC 流的摄取。
    • WHEP:通过 HTTP 用于信令和媒体传输,简化 WebRTC 流的传输。
    • 无缝集成:旨在轻松集成到现有的 WebRTC 基础架构中。
  • 用例:适用于大规模直播和实时通信平台。

这些是最常用的流媒体协议。

本文由作者按照 CC BY-NC-ND 4.0 进行授权