【问题标题】:Detect H264 profile and level for HTML5 video检测 HTML5 视频的 H264 配置文件和级别
【发布时间】:2014-09-12 23:18:44
【问题描述】:

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

我已经阅读了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 高配置文件级别 4.1?

【问题讨论】:

    标签: javascript video html5-video


    【解决方案1】:

    在研究 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 level 4.1 进行测试,则要测试的 mime 类型为 avc1.640029。您可以使用diveintohtml5.info 中的函数来测试您的mime 类型。

    附带说明,如果您想要广泛的设备覆盖范围,您最好为每个文件只生成一个 H264 主配置文件再现,因为它将在大多数常见设备上播放(这是我今天的做法,除非我有设备特定要求)。

    【讨论】:

    • 感谢您的回答,我会阅读链接并尝试您的示例。
    猜你喜欢
    • 2014-05-22
    • 2015-03-26
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 2023-01-12
    相关资源
    最近更新 更多