抖音、小红书、YouTube 或 Twitch 上的视频直播是如何工作的?
直播不同于普通的录播流媒体,因为其视频内容是通过互联网实时发送的,延迟时间通常只有几秒钟。
下图解释了这一功能是如何实现的。

第 1 步:
原始视频数据由摄像头和麦克风采集。数据被发送到服务器端。
第 2 步:
对视频数据进行压缩和编码。例如,压缩算法会分离背景和其他视频元素。压缩后,视频按照 H.264 等标准进行编码。经过这一步骤后,视频数据的大小会小得多。
第 3 步:
编码后的数据被分成更小的片段(Segmentation),长度通常为几秒钟,因此下载或流式传输所需的时间更短。
第 4 步:
将分段数据发送到流媒体服务器。流媒体服务器需要支持不同的设备和网络条件。这就是所谓的 "自适应比特率流"。这意味着我们需要在步骤 2 和 3 中以不同的比特率生成多个文件。
第 5 步:
将直播数据推送到 CDN(内容分发网络)支持的边缘服务器。CDN 大大降低了数据传输延迟。
第 6 步:
观众的设备对视频数据进行解码和解压,并在视频播放器中播放视频。
第 7 步和第 8 步:
如果视频需要存储以便重放,则将编码数据发送到存储服务器,观众可在稍后请求重放。
我们来看看这个过程中用到了哪些实时流媒体的标准协议。
RTMP(Real-Time Messaging Protocol)
该协议最初由 Macromedia 开发,用于在 Flash 播放器和服务器之间传输数据。现在它用于在互联网上传输音频、视频和其他数据流。RTMP 是基于 TCP 的,可保持持久连接并允许低延迟通信。它将数据流拆分为片段,并在客户端和服务器之间动态协商其大小。
请注意,Skype 等视频会议应用程序使用 RTC(Real-Time Communication)协议来降低延迟。
HLS(HTTP Live Streaming)
HLS 由 Apple 开发并于 2009 年发布。它是基于 HTTP 的自适应码流通信协议。它的工作原理是将整个流分解为一系列基于 HTTP 的小型文件下载。它需要 H.264 或 H.265 编码。苹果设备只接受 HLS 格式。
DASH(Dynamic Adaptive Streaming over HTTP,HTTP 动态自适应流)
和 Apple 的 HLS 类似,DASH 是一种自适应比特率流式处理技术,工作原理是将内容分解为一系列小片段,并通过 HTTP 传输。





