七、封装格式与流传输协议(Container Formats & Streaming Protocols)
引言
在第六章的结尾,我们留下了一个新的问题:比特已经压缩好,那么,该如何让它跨越网络,抵达每一块屏幕?
先感受一下这段旅程的艰险。一场 1080p 球赛直播,码率按 6 Mbit/s 计,九十分钟就是约 4 GB 的比特流。它们要穿过拥塞的公网、翻越 NAT 与防火墙、在时延与抖动里保持队形,最后准点落在千万块屏幕上——晚到几秒,欢呼声就输给了邻居家的电视。完成这套运输工作的,是本章的两位主角:封装格式 负责把码流组织成可存储、可寻址、可复用的容器;流传输协议 负责把容器里的内容安全、及时地送过网络。
有趣的是,这两位主角都不是 "后来发明" 的。容器的历史几乎与数字视频同龄——QuickTime 的 Box 结构今天仍是 MP4 的骨架;协议则是一部浓缩的互联网演进史——从组播时代的 RTP,到 Flash 王朝的 RTMP,再到 HTTP 化的 HLS/DASH 与万物实时的 WebRTC。每一项设计背后,都刻着它诞生年代的网络条件与商业格局。读协议,亦是读史。
本章沿 "容器 → 传输 → 实战" 的主线展开:先解剖 MP4、FLV、MPEG-TS 三种容器的设计取向;再按编年顺序遍历五代流传输协议,看清 "可靠性 - 实时性 - 生态" 天平上的不同配重;最后用两个动手实验,把整章规则按进真实流量里检验。
通过本章节的学习,读者将能够说清主流容器与传输协议的代际脉络与设计取舍,读懂 RTMP、HLS 的报文结构,并能亲手抓包分析一路真实的推流会话。
关键字:封装格式、MP4、FLV、MPEG-TS、RTP、RTMP、HLS、DASH、WebRTC、SRT
目录
- 7.1 从封装说起:容器的使命(The Mission of Containers)
- 7.2 实时传输奠基:RTP/RTCP(The Foundation of Real-Time Transport)
- 7.3 直播时代的霸主:RTMP(RTMP & The Live Streaming Dynasty)
- 7.4 直播的 HTTP 化:HLS 与 fMP4(HLS & Fragmented MP4)
- 7.5 现代协议群像:DASH、WebRTC 与 SRT(The Modern Protocol Landscape)
- 7.6 实战:推流抓包与低延迟拉流(practice_8)
- 7.7 本章小结与进阶指引(Summary & Roadmap)
- 【在线展示】
- 【参考文献】