RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。
1 消息
消息是RTMP协议中基本的数据单元。不同种类的消息包含不同的Message Type ID,代表不同的功能。RTMP协议中一共规定了十多种消息类型,分别发挥着不同的作用。例如,Message Type ID在1-7的消息用于协议控制,这些消息一般是RTMP协议自身管理要使用的消息,用户一般情况下无需操作其中的数据。Message Type ID为8,9的消息分别用于传输音频和视频数据。Message Type ID为15-20的消息用于发送AMF编码的命令,负责用户与服务器之间的交互,比如播放,暂停等等。消息首部(Message Header)有四部分组成:标志消息类型的Message Type ID,标志消息长度的Payload Length,标识时间戳的Timestamp,标识消息所属媒体流的Stream ID。消息的报文结构如图3所示。
消息
2 消息块
在网络上传输数据时,消息需要被拆分成较小的数据块,才适合在相应的网络环境上传输。RTMP协议中规定,消息在网络上传输时被拆分成消息块(Chunk)。消息块首部(Chunk Header)有三部分组成:用于标识本块的Chunk Basic Header,用于标识本块负载所属消息的Chunk Message Header,以及当时间戳溢出时才出现的Extended Timestamp。消息块的报文结构如图4所示。
消息块
3 消息分块
在消息被分割成几个消息块的过程中,消息负载部分(Message Body)被分割成大小固定的数据块(默认是128字节,最后一个数据块可以小于该固定长度),并在其首部加上消息块首部(Chunk Header),就组成了相应的消息块。消息分块过程如图5所示,一个大小为307字节的消息被分割成128字节的消息块(除了最后一个)。
RTMP分块
RTMP传输媒体数据的过程中,发送端首先把媒体数据封装成消息,然后把消息分割成消息块,最后将分割后的消息块通过TCP协议发送出去。接收端在通过TCP协议收到数据后,首先把消息块重新组合成消息,然后通过对消息进行解封装处理就可以恢复出媒体数据。
RTMP协议规范(中文翻译):http://download.csdn.net/detail/leixiaohua1020/6563059
相关推荐
Adobe 官方公布的 RTMP 规范 译序 1. 简介 1.1. 术语 2. 贡献者 3. 名词解释 4. 字节序、对齐和时间格式 5. RTMP 块流 5.1 消息格式 5.2 握手 5.2.1. 握手顺序 5.2.2. C0 和 S0 的格式 5.2.3. C1 和 S1 的格式...
"RTMP 协议规范中文版详解" RTMP(Real-Time Messaging Protocol)是一种应用层协议,主要用于通过可靠的传输层协议(例如 TCP)复用、打包多媒体数据流(音频、视频和交互数据)。RTMP 块流是一种基于 RTMP 的协议...
这个压缩包包含了RTMP规范的中英文对照版,对于想要深入理解和开发相关应用的IT从业者来说,是一份非常宝贵的资源。 RTMP协议最初由Adobe Systems开发,用于Flash Player与服务器之间的实时数据通信。它支持流媒体...
RTMP规范详细定义了连接建立、握手过程、命令消息、数据传输、时间戳处理等多个方面。 1. **连接与握手** - RTMP协议建立连接时,通常涉及到TCP三次握手来创建可靠的连接。 - 握手过程包括客户端(C)和服务器(S...
此中文版文档详细阐述了RTMP块流的规范。 1. **术语解析**: - **负载**:数据包中的实际内容,如音频样本和压缩视频。 - **分组**:包含固定头部和负载数据的数据单元。 - **端口**:在计算机中区分不同目标的...
rtmp交互流程抓包分析 用wireshark工具分析
此规范的中英文对照阅读版提供了方便的学习和理解RTMP协议的途径,尤其适合对网络流媒体技术感兴趣的开发者、网络工程师和相关领域的学生。 《RTMP规范中英文对照阅读版》PDF文件包含了以下主要内容: 1. **协议...
rtmp协议抓包分析
RTMP(Real-Time Messaging Protocol...理解它们的工作原理、格式规范以及相关的分析和测试工具,对于开发和优化流媒体服务至关重要。通过深入学习和实践,可以更好地应对各种流媒体应用场景,提供高质量的音视频体验。
通过"rtmp规范中文翻译.docx"和"rtmp规范中文翻译.pdf"这两个文件,读者可以深入了解RTMP协议的每一个细节,包括它的结构、命令和数据格式,这对于开发者构建基于RTMP的流媒体系统或者分析RTMP流量非常有帮助。...
### RTMP协议规范详解 #### 一、引言与背景 **实时消息协议**(Real-Time Messaging Protocol, RTMP)是由Adobe Systems Inc.开发的一种专为流媒体数据传输设计的应用层协议。RTMP协议的主要功能是将多媒体数据如...
RTMP规范是RTMP技术的核心,规定了如何封装数据以及数据传输的流程。 RTMP协议的通信过程主要涉及到几个关键概念:负载(payload)、分组(packet)、端口(port)、消息流(message stream)、块(chunk)以及块流...
### RTMP协议规范1.0知识点详解 #### 1. 引言 - **协议目的**:Adobe的实时消息协议(RTMP)旨在通过一种类似于TCP的可靠流传输通道提供双向消息复用服务,该通道支持同时传输带有时间关联信息的音频、视频流以及...
RTMP(Real-Time Messaging Protocol,实时消息传输协议)是一种广泛应用于在线流媒体传输的协议,尤其在直播领域中。...通过深入研究《rtmp规范翻译1.0.docx》文档,可以获取更详尽的技术细节和实践指导。
RTMP协议规范中文版本详细介绍了RTMP协议的工作原理,包括握手创建过程、操作命令及流的分块机制,为理解和实施RTMP协议提供了详尽的指导。 ### 握手创建过程 RTMP协议的握手是连接建立的第一步,它发生在客户端和...
RTMP协议规范的中文翻译文档是理解并实现该协议的关键资源,尤其对于开发者和网络流媒体服务提供者而言,具有很高的学习价值。 RTMP协议的主要特点包括以下几点: 1. **连接建立**:RTMP协议首先通过TCP建立连接,...
《RTMP规范翻译1.01》详细解读 实时消息协议(Real-Time Messaging Protocol, RTMP)是Adobe Systems Inc开发的一种应用层协议,主要用于在TCP等传输层协议上复用和打包多媒体数据流,包括音频、视频和交互数据。...
例如,类型0的消息头是最简单的,而类型2和3的消息头则包含更多的信息,如扩展时间戳。 握手是RTMP通信的初始阶段,包括C0/S0、C1/S1和C2/S2三个步骤,用于建立连接和交换会话信息。握手过程中,服务器和客户端互相...