首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

【多媒体打包格式详解】-MP4【3】

2013-01-20 
【多媒体封装格式详解】---MP4【3】2.2.2Media BoxBox Type: ‘mdia’mdia box 结构十分复杂。来个例子。2.2.2.1 M

【多媒体封装格式详解】---MP4【3】

2.2.2  Media BoxBox Type: ‘mdia’
mdia box 结构十分复杂。来个例子。【多媒体打包格式详解】-MP4【3】
2.2.2.1 Media Header BoxBox Type: ‘mdhd’
aligned(8) class MediaHeaderBox extends FullBox(‘mdhd’, version, 0) {if (version==1) {unsigned int(64) creation_time;unsigned int(64) modification_time;unsigned int(32) timescale;unsigned int(64) duration;} else { // version==0unsigned int(32) creation_time;unsigned int(32) modification_time;unsigned int(32) timescale;unsigned int(32) duration;}bit(1) pad = 0;unsigned int(5)[3] language; // ISO-639-2/T language codeunsigned int(16) pre_defined = 0;}

Field

Type

Comment

box size

4

box大小

box type

4

box类型

version

1

box版本,0或1,一般为0。

creation time

4

创建时间(相对于UTC时间1904-01-01零点的秒数)

modification time

4

修改时间

time scale

4

文件媒体在1秒时间内的刻度值,可以理解为1秒长度的时间单元数

一般情况下视频的 都是90000

duration

4

该track的时间长度

language

2

媒体语言码

pre-defined

2


2.2.2.2 Handler Reference BoxBox Type: ‘hdlr’
从hdlr 这个box里面,我们可以获得这个track的类型信息。
aligned(8) class HandlerBox extends FullBox(‘hdlr’, version = 0, 0) {unsigned int(32) pre_defined = 0;unsigned int(32) handler_type;const unsigned int(32)[3] reserved = 0;string name;}

Field

Type

Comment

box size

4

box大小

box type

4

box类型

version

1

box版本,0或1,一般为0。

flags

3

 

pre-defined

4

handler_type

4

‘vide’ Video track

‘soun’ Audio track

‘hint’ Hint track

reserved

12

0

name

string

字符串 track type name


例子 

 00 00 00 2168 64 6C 7200 00 00 00 00 00 00 00 ; ...!hdlr........

76 69 64 65 00 00 00 00 00 00 00 00 00 00 00 00 ; vide............

00上面的例子 可知track 的类型是 ‘vide’ 这是个video track
2.2.2.3 Media Information BoxBox Type: ‘minf’

minf 里包含着一系列的box。里面是track有关的特征信息。一般情况minf 包含:Media Information Header Boxes、Data Information Box(dinf)、Sample Table Box。Media Information Header Boxes 根据类型分‘vmhd’, ‘smhd’, ’hmhd’, ‘nmhd’

2.2.2.3.1 Media Information Header BoxesBox Types: ‘vmhd’, ‘smhd’, ’hmhd’, ‘nmhd’

Video Media Header Box(vmhd)

Field

Type

Comment

box size

4

box大小

box type

4

box类型

version

1

box版本,0或1,一般为0。

flags

3

flags

graphicsmode

2

specifies a composition mode for this video track, from the following enumerated set,

which may be extended by derived specifications:

copy = 0 copy over the existing image

opcolor

2*3

is a set of 3 colour values (red, green, blue) available for use by graphics modes


例子:

00 00 00 14 76 6D 68 640000 00 0100 00 00 00 ; ....vmhd........

00 00 00 00                                     ; ....



Sound Media Header Box(smhd)

Field

Type

Comment

box size

4

box大小

box type

4

box类型

version

1

box版本,0或1,一般为0。

flags

3

flags

balance

2

立体声平衡,[8.8]格式值,一般为0,-1.0表示全部左声道,1.0表示全部右声道

reserved

2

0


例子:

 00 00 00 10 73 6D 68 64 00 00 00 0000 0000 00; ....smhd........


Hint Media Header Box(hmhd)
aligned(8) class DataEntryUrlBox (bit(24) flags)extends FullBox(‘url ’, version = 0, flags) {string location;}aligned(8) class DataEntryUrnBox (bit(24) flags)extends FullBox(‘urn ’, version = 0, flags) {string name;string location;}aligned(8) class DataReferenceBoxextends FullBox(‘dref’, version = 0, 0) {unsigned int(32) entry_count;for (i=1; i ? entry_count; i++) {DataEntryBox(entry_version, entry_flags) data_entry;}}

未完待续。。。。。接下来要把里面的真实数据流搞出来。







热点排行