RTMP协议规范详解:流的分块

需积分: 9 23 下载量 52 浏览量 更新于2024-07-31 1 收藏 129KB DOCX 举报
"rtmp规范翻译1.0版本" 这篇文档详细介绍了实时消息协议(RTMP)中的流分块机制,这是一个应用层协议,主要在TCP等传输层协议上复用和打包多媒体数据流,包括音频、视频和交互数据。RTMP分块不仅用于RTMP协议,还能适应其他传输消息流的协议。它确保跨流的消息按时间戳顺序端到端传输,但不提供优先级控制,这可以通过更高层的协议实现。 文档首先定义了一些关键术语,如负载(Payload)、包(Packet)、端口、传输地址、消息流和消息流ID。负载指的是包中的实际数据,如音频样本和压缩视频;包包含固定头部和负载数据;端口是计算机中区分不同目标的标识;传输地址结合了网络地址和端口;消息流是承载消息的逻辑通道,每个消息都有唯一的消息流ID。 接着,文档阐述了字节序、对齐和时间格式,这些都是解析和构建RTMP消息的基础。消息格式部分涵盖了握手过程,包括C0/S0、C1/S1和C2/S2三个阶段的握手序列,以及握手示意图。握手是建立RTMP连接的关键步骤。 块(Chunks)是RTMP分块的核心,有四种类型:类型0、类型1、类型2和类型3,每个类型具有不同的头部结构,用来指示时间戳、负载类型和其他信息。此外,还有一种扩展时间格式,用于表示更精确的时间戳。 文档中给出了两个示例,演示了如何将消息分解成块并进行编码。接着,讨论了协议控制消息,如设置块的大小,以及与消息相关的其他操作。 RTMP分块协议还包括内置的带内控制消息,允许高层协议嵌入控制信息。虽然RTMP不直接提供优先级控制,但通过高层协议可以实现视频消息的丢弃策略,以确保音频消息的及时传输,这对于实时直播、点对点或多点直播、vod服务和交互式视频会议至关重要。 在文档的最后,列出了规范参考和信息参考的相关文献,以及对贡献者的致谢。这个翻译版的RTMP规范1.0版本为理解RTMP协议的运作提供了全面的指南,有助于开发者和研究者深入研究实时媒体传输的细节。