-
MP4box介绍
MP4由数个box组成,一个box的结构示意图如下图所示:
普通的box由header与body组成,body储存数据内容,header指明box相关信息,由size和type组成,其中:
- size 大小四个字节,记录整个box大小。若size等于0说明是最后一个box,size等于1说明是需要largesize来记录box大小。
- type 大小四个字节,表示box种类。例如‘ftyp’,‘moov’等。如果为uuid,则说明该box为用户自定义box。
- largesize 大小八个字节,当size=1时启用,记录该box大小。
-
自定义uuidbox
uuid box是可供用户自定义内容的box ,自定义uuidbox代码:
avio_wb32(pb, 28);//size
ffio_wfourcc(pb, "uuid");//type
avio_wb32(pb, 0x6b6840f2);//data
avio_wb32(pb, 0x5f244fc5);
avio_wb32(pb, 0xba39a51b);
avio_wb32(pb, 0xcf0323f3);
avio_wb32(pb, 0x0);
需要注意:
- box size与写入的box大小相匹配,不然解析box出现错误。
- 写入数据的头部和尾部必须是16进制以0x开头,否则解析boxheader会重复,暂不知原因。
生成的uuid box解析如下: