Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测HTML5视频的H264配置文件和级别_Javascript_Video_Html5 Video - Fatal编程技术网

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

Javascript 检测HTML5视频的H264配置文件和级别,javascript,video,html5-video,Javascript,Video,Html5 Video,我有一堆mp4文件,都是用H264高调级别4.x进行视频编码的。我们希望通过HTML5视频显示它们,以便跨设备交付(从手机到连接的电视)。我知道这些文件可能无法在所有设备上播放,尤其是旧设备,因此我们正在考虑其他选择(例如为用户显示警告消息或为文件创建基线格式副本)。我需要在JavaScript中检查一个给定的设备是否可以读取给定的H264配置文件和级别,我不确定它到底是如何工作的 我已经阅读了提供如下功能的 function supports_h264_baseline_video() {

我有一堆mp4文件,都是用H264高调级别4.x进行视频编码的。我们希望通过HTML5视频显示它们,以便跨设备交付(从手机到连接的电视)。我知道这些文件可能无法在所有设备上播放,尤其是旧设备,因此我们正在考虑其他选择(例如为用户显示警告消息或为文件创建基线格式副本)。我需要在JavaScript中检查一个给定的设备是否可以读取给定的H264配置文件和级别,我不确定它到底是如何工作的

我已经阅读了提供如下功能的

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?

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

视频编解码器

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

如果您想针对H264 High-profile level 4.1进行测试,那么要测试的mime类型将是avc1.640029。您可以使用diveintohtml5.info中的函数来测试mime类型


另一方面,如果您想要广泛的设备覆盖范围,最好只为每个文件生成一个H264主配置文件格式副本,因为它将在大多数常用设备上播放(除非我有特定的设备要求,否则我今天就是这样做的)。

感谢您的回答,我将阅读链接并尝试您的示例。
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