ZigZag Sin
登 陆
上一篇:minf Box 下一篇:dinf Box

vmhd smhd Box

Time
2022-2-21 11:39 阅读 341

具体 Box 分析

Vmhd / Smhd Box

官方介绍定义

Vmhd Box

image-20211221232656051

Smhd Box

image-20211221232720556

传送门:MP4 文档 P21-22页

介绍

该Box为Full Box意味着 Box Header 有四字节的 version 和 Flag 字段。这个 Box 的大小是固定的,如果是 Vmhd 则大小就是 20 字节,如果是 Smhd 则大小是 16 字节,一般都是用默认值填充。

字段分析:

名称大小(byte)意义说明
Box length4Box 整体的大小包含 Header 和 Data部分
Box type4”vmhd/smhd”的ASCII码,表明是 vmhd box / smhd boxbox 属性值,通常是固定值
version1box版本一般为0
flags3该 Box 该字段填充0
raphics mode(Vudio Track)2视频合成模式,为0时拷贝原始图像,否则与opcolor进行合成默认为0
Opcolor(Vudio Track)6(2*3)颜色值,RGB颜色值默认为0
Balance(Audio Track)4音频的均衡默认为0

工具分析:

16 进制工具分析查看

image-20211222172007742

image-20211222172028651

具体值(vmhd/smhd):

名称实际值(16进制)具体值(10进制 / ASCII)字段位置
Box length00 00 00 14/ 00 00 00 1020 / 16Header
Box type76 6D 68 64 / 73 6D 68 64"vmhd"/"smhd"Header
version00 Header
flags00 00 00 Header
R00 00 Data
G00 00 Data
B00 00 Data
Balance00 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;
};
上一篇:minf Box 下一篇:dinf Box
给我买个键盘吧。。。求打赏。。。
欢迎加群,一起交流~~~