您的位置:首页 > 其它

codecs 组成

2016-04-22 16:35 453 查看
The 
codecs
 parameter
is specified by RFC 6381. Specifically, see section
3.3 for the meaning of 
avc1
 and 
mp4a
 values.

In the case of 
avc1.4D401E
avc1
 indicates
H.264 video, and this is followed by a dot and three 2-digit hexadecimal numbers defined by the H.264 standard:
profile_idc

the byte containing the 
constraint_set
 flags
(currently 
constraint_set0_flag
 through 
constraint_set5_flag
,
and the 
reserved_zero_2bits
)
level_idc


Some examples:
avc1.42E01E
:
H.264 Constrained Baseline Profile Level 3
avc1.4D401E
:
H.264 Main Profile Level 3
avc1.64001E
:
H.264 High Profile Level 3

These are also the second, third, and fourth bytes of the Sequence Parameter Set and the AVC Configuration Box in an MP4 file. You can dump these bytes using a program such as 
mp4file
mp4file
--dump movie.mp4
. Look for the 
avcC
 (AVC
Configuration) Box and the hexadecimal values for 
AVCProfileIndication
profile_compatibility
,
and 
AVCLevelIndication
.

As for 
mp4a.40.2
mp4a
 indicates
MPEG-4 audio. It is followed by a dot and a hexadecimal 
ObjectTypeIndication
 (
objectTypeId
 in 
mp4file
 output),
which can be looked up on the MPEG4 registration site. If this hexadecimal value is 
40
 (ISO/IEC
14496-3 Audio), it is followed by another dot and an audio object type in decimal. These are listed in the ISO/IEC 14496-3 standard and onWikipedia,
and correspond to the first 5 bits of the 
DecoderSpecificInfo
 (
decSpecificInfo
)
(unless these bits equal 31, in which case add 32 to the next 6 bits). 
mp4a.40.2
 indicates
AAC LC audio, which is what is usually used with H.264 HTML5 video.

For example, 
codecs="avc1.42E01E,
mp4a.40.2"
 would be correct for the movie below:
$ mp4file --dump movie.mp4
...
type avcC (moov.trak.mdia.minf.stbl.stsd.avc1.avcC)  ◀━━ avc1
configurationVersion = 1 (0x01)
AVCProfileIndication = 66 (0x42)    ◀━━ 42
profile_compatibility = 224 (0xe0)  ◀━━ E0
AVCLevelIndication = 30 (0x1e)      ◀━━ 1E
...
type esds (moov.trak.mdia.minf.stbl.stsd.mp4a.esds)  ◀━━ mp4a
version = 0 (0x00)
flags = 0 (0x000000)
ESID = 2 (0x0002)
streamDependenceFlag = 0 (0x0) <1 bits>
URLFlag = 0 (0x0) <1 bits>
OCRstreamFlag = 0 (0x0) <1 bits>
streamPriority = 0 (0x00) <5 bits>
decConfigDescr
objectTypeId = 64 (0x40)           ◀━━ 40
streamType = 5 (0x05) <6 bits>
upStream = 0 (0x0) <1 bits>
reserved = 1 (0x1) <1 bits>
bufferSizeDB = 0 (0x000000) <24 bits>
maxBitrate = 78267 (0x000131bb)
avgBitrate = 78267 (0x000131bb)
decSpecificInfo
info = <2 bytes>  11 90  |..|     ◀━━ 2 (first 5 bits in decimal)
...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: