RMTP消息格式
Posted 顾文繁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RMTP消息格式相关的知识,希望对你有一定的参考价值。
先放一张网络资源的图。
这里的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控制消息
以上是关于RMTP消息格式的主要内容,如果未能解决你的问题,请参考以下文章
window 下搭建流媒体服务器ffmpeg nginx-rmtp-module