检测HTML5视频的H264配置文件和级别

时间:2014-07-22 08:21:07

标签: javascript video html5-video

我有一堆mp4文件,都是用H264 High profile level 4.x编码的。我们希望使用HTML5视频显示它们,以便跨设备交付(从手机到连接的电视)。我知道这些文件可能无法在所有设备上运行,尤其是较旧的设备,因此我们正在考虑替代方案(例如为用户显示警告消息或为文件创建基线再现)。我需要检查JavaScript是否给定设备可以读取给定的H264配置文件和级别,我不确定它是如何工作的。

我已阅读http://diveintohtml5.info/detect.html,提供如下功能

function supports_h264_baseline_video() {
  if (!supports_video()) { return false; }
  var v = document.createElement("video");
  return v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');
}  

这告诉我H264基线配置文件 - 例如如何检测H264 High profile 4.1?

1 个答案:

答案 0 :(得分:0)

在我研究HTML5视频和mime类型的过程中,我从whatwg.org找到了这个link。它说:

  

视频编解码器

H.264 Baseline: avc1.42E0xx, where xx is the AVC level
H.264 Main: avc1.4D40xx, where xx is the AVC level
H.264 High: avc1.6400xx, where xx is the AVC level 

XX表示为十六进制值。因此,在您的示例中,级别3.0是1E。

如果要针对H264 High profile 4.1进行测试,则要测试的mime类型为avc1.640029。您可以使用diveintohtml5.info中的函数来测试您的mime类型。

另一方面,如果你想要广泛的设备覆盖,你可能最好只为每个文件生成一个H264主要配置文件,因为它将在大多数常见设备上播放(这是我今天所做的,除非我有一个特定于设备的要求)。