先放一张网络资源的图。 这里的RTMP Header和RTMP Body是把传输层的外壳剥掉之后的内容,其实就是TCP建立连接以后的数据,这些头再经过RTMP服务端和客户端解析这些数据。
RTMP Header
Basic Header
Basic Header中format和Chunk Stream ID一共占用1个字节。 format占用2位,Chunk Stream占用6位。 如果Chunk Stream在2~63之间,则不再扩展Basic Header。如果为0或者1分别进行扩展Basic Header ID一个和3个。
Message Header
Message Header最大包括4部分。当format(2位最大能表示3个数)为10(binary)是Message Header只分配Timestamp,当format为01(binary)时,分配Body Size和Type ID,当format为11(binary)时候,出了分配Timestamp、Body Size和Type ID还有Stream ID
Extended Timestamp
当TimeStamp为十六进制数0xFFFF时候,分配Extended Timestamp
RTMP Body
Control(1byte)
Control(8位)前4位在Video Data中存放那种类型的GOP帧(keyframe、interframe或者p帧),在后四位中表示Video Data 的格式(属于什么编码器数据) Control 在音频中,前四位表示音频编码格式,后两位表示音频采样率,其余后两位分别表示采样大小,通道。
Video/Audio/Body
这里才是真正的音视频编码后的数据。
RTMP控制消息
|