Vmhd Box
Smhd Box
传送门:MP4 文档 P21-22页
该Box为Full Box意味着 Box Header 有四字节的 version 和 Flag 字段。这个 Box 的大小是固定的,如果是 Vmhd 则大小就是 20 字节,如果是 Smhd 则大小是 16 字节,一般都是用默认值填充。
名称 | 大小(byte) | 意义 | 说明 |
---|---|---|---|
Box length | 4 | Box 整体的大小 | 包含 Header 和 Data部分 |
Box type | 4 | ”vmhd/smhd”的ASCII码,表明是 vmhd box / smhd box | box 属性值,通常是固定值 |
version | 1 | box版本 | 一般为0 |
flags | 3 | 该 Box 该字段填充0 | |
raphics mode(Vudio Track) | 2 | 视频合成模式,为0时拷贝原始图像,否则与opcolor进行合成 | 默认为0 |
Opcolor(Vudio Track) | 6(2*3) | 颜色值,RGB颜色值 | 默认为0 |
Balance(Audio Track) | 4 | 音频的均衡 | 默认为0 |
16 进制工具分析查看
名称 | 实际值(16进制) | 具体值(10进制 / ASCII) | 字段位置 |
---|---|---|---|
Box length | 00 00 00 14/ 00 00 00 10 | 20 / 16 | Header |
Box type | 76 6D 68 64 / 73 6D 68 64 | "vmhd"/"smhd" | Header |
version | 00 | Header | |
flags | 00 00 00 | Header | |
R | 00 00 | Data | |
G | 00 00 | Data | |
B | 00 00 | Data | |
Balance | 00 | Data |
// BaseBox.h
// ...
// 其他 Box 的定义
class TimeVmhdBox : public BaseBox {
public:
Timebyte version = 0;
Timebyte flags = 0;
unsigned short R;
unsigned short G;
unsigned short B;
};
class TimeSmhdBox : public BaseBox {
public:
Timebyte version = 0;
Timebyte flags = 0;
unsigned int Balance;
};