简介
由于一帧音视频数据有时候会很大,比如几十M甚至更大。但是为了方便在网络上传输,需要把数据拆分成一个个较小的块,这里称之为消息块(Chunk)。常见的是每块大小为4000 byte左右。
Chunk的结构如下:
- [Chunk Basic Header]
- [Chunk Message Header]
- [Extended TimeStamp]
- [Chunk Data]
[Chunk Basic Header][Chunk Message Header][Extended TimeStamp] 3个合在一起都是 Chunk Header。
struct rtmp_chunk_header_t
{
uint8_t fmt; // RTMP_CHUNK_TYPE_XXX
uint32_t cid; // chunk stream id(22-bits)
uint32_t timestamp; // delta(24-bits) / extended timestamp(32-bits)
uint32_t length; // message length (24-bits)
uint8_t type; // message type id
uint32_t stream_id; // message stream id
};
Chunk Basic Header
Header Type + Channel ID 组成,长度在1~3个字节之间
Header Type (FMT)
FMT决定[Chunk Message Header]的长度,取值有0~3,对应关系是:
- 0