的codecs
參數由RFC 6381指定。具體而言,請參閱section 3.3以獲得avc1
和mp4a
值的含義。
在avc1.4D401E
的情況下,指示avc1
H.264視頻,這是後面跟着一個點和三個2位十六進制數由the H.264 standard定義:
profile_idc
- 字節含有
constraint_set
標誌(目前constraint_set0_flag
通過constraint_set5_flag
和reserved_zero_2bits
)
level_idc
個
一些例子:
avc1.42E01E
:H.264約束Baseline Profile的3級
avc1.4D401E
:標準H.264 Main Profile級別3
avc1.64001E
:H.264 High Profile的3級
這些也是MP4文件中序列參數集和AVC配置框的第二,第三和第四個字節。您可以使用諸如mp4file
的程序轉儲這些字節:mp4file --dump movie.mp4
。請查找avcC
(AVC配置)框以及AVCProfileIndication
,profile_compatibility
和AVCLevelIndication
的十六進制值。
至於mp4a.40.2
,mp4a
表示MPEG-4音頻。接下來是一個點和一個十六進制ObjectTypeIndication
(objectTypeId
,mp4file
輸出),可以在the MPEG4 registration site上查找。如果這個十六進制值是40
(ISO/IEC 14496-3音頻),則其後是另一個點和一個十進制音頻對象類型。這些在ISO/IEC 14496-3標準和Wikipedia中列出,並且對應於DecoderSpecificInfo
(decSpecificInfo
)的前5位(除非這些位等於31,在這種情況下將32添加到接下來的6位)。 mp4a.40.2
表示AAC LC音頻,這通常與H.264 HTML5視頻一起使用。
例如,codecs="avc1.42E01E, mp4a.40.2"
將是下面的電影正確:
$ 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)
...
感謝您的信息 - 非常有幫助 – user2302694 2013-05-06 20:24:49
驚人的答案。我花了數小時尋找這些信息。謝謝! – nbz 2016-08-27 18:15:19