我正在尝试在视频标签中使用指定特定的视频/音频编解码器
<video poster="movie.jpg" controls>
<source src="movie.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'/>
<p>This is fallback content</p>
</video>
但找不到正确的编解码器声明来播放视频,我下载了一个视频分析器,可以看到它是一个 avc1,可以看到音频 map.40.2 但可以计算出其余的编解码器,4d401e 是什么意思是在上面?
干杯托比
原文由 user2302694 发布,翻译遵循 CC BY-SA 4.0 许可协议
codecs
参数由 RFC 6381 指定。具体的avc1
和mp4a
值的含义见 3.3节。在
avc1.4D401E
的情况下,avc1
表示H.264视频,后面跟着一个点和三个由 H.264标准 定义的2位十六进制数:profile_idc
constraint_set
flags (currentlyconstraint_set0_flag
throughconstraint_set5_flag
, and thereserved_zero_2bits
)level_idc
一些例子:
avc1.42E01E
:H.264 约束基线配置文件级别 3avc1.4D401E
: H.264 Main Profile Level 3avc1.64001E
: H.264 High Profile Level 3它们也是 MP4 文件中序列参数集和 AVC 配置框的第二、第三和第四个字节。您可以使用程序转储这些字节,例如
mp4file
:mp4file --dump movie.mp4
。 Look for theavcC
(AVC Configuration) Box and the hexadecimal values forAVCProfileIndication
,profile_compatibility
, andAVCLevelIndication
.至于
mp4a.40.2
,mp4a
表示MPEG-4音频。它后面跟着一个点和一个十六进制ObjectTypeIndication
(objectTypeId
inmp4file
输出),可以在 .MPEG 注册站点 上查找。如果这个十六进制值是40
(ISO/IEC 14496-3 Audio),它后面跟着另一个点和十进制的音频对象类型。这些列在 ISO/IEC 14496-3 标准和 维基百科 上,对应于DecoderSpecificInfo
(decSpecificInfo
) 的前 5 位(除非这些位等于 31,其中case 将 32 添加到接下来的 6 位)。mp4a.40.2
表示AAC LC音频,通常用于H.264 HTML5视频。例如,
codecs="avc1.42E01E, mp4a.40.2"
对于下面的电影来说是正确的: