rtmp协议消息简介

date: 2017.02.08; modification:2017.02.08

目录:

1 概述

RTMP协议是一个互联网TCP/IP体系结构中应用层的协议. RTMP协议中基本的数据单元称为消息(Message). 当RTMP协议在互联网中传输数据的时候, 消息(Message)会被拆分成更小的单元, 称为消息块(Chunk).

1.1 消息

消息是RTMP协议中基本的数据单元. 消息由Message Header与Message Body组成.

消息的报文结构如图:

rtmp消息

rtmp消息

说明:

消息首部(Message Header)有四部分组成:

不同种类的消息包含不同的Message Type ID, 代表不同的功能. RTMP协议中一共规定了十多种消息类型, 分别发挥着不同的作用. 例如:

1.2 消息分块

RTMP传输媒体数据的过程中, 发送端首先把媒体数据封装成消息, 然后把消息分割成消息块, 最后将分割后的消息块通过TCP协议发送出去. 接收端在通过TCP协议收到数据后, 首先把消息块重新组合成消息, 然后通过对消息进行解封装处理就可以恢复出媒体数据.

在消息被分割成几个消息块的过程中, 消息负载部分(Message Body) 被分割成大小固定的数据块(默认是128字节, 最后一个数据块可以小于该固定长度), 并在其首部加上消息块首部(Chunk Header), 就组成了相应的消息块.

消息分块过程如图下图所示, 一个大小为307字节的消息块 被分割成128字节的消息块(除了最后一个):

rtmp消息分块

rtmp消息分块

1.3 消息块

在网络上传输数据时, 消息需要被拆分成较小的数据块, 才适合在相应的网络环境上传输.

消息块的报文结构如图:

rtmp消息块

rtmp消息块

说明:

RTMP协议中规定, 消息在网络上传输时被拆分成消息块(Chunk). 消息块首部(Chunk Header)有三部分组成:

2 参考

http://blog.csdn.net/leixiaohua1020/article/details/11694129