HTML 5视频标签可以有多个具有不同编解码器的MP4源吗?

时间:2014-03-27 20:39:16

标签: html video mp4

我正在考虑这样一个事实,即我们使用的MP4配置文件越高,视频质量就越高......

这让我想到了一个问题,我想我会问专家!

HTML 5视频代码可以有多个具有不同编解码器的MP4源吗?类似的东西:

<video>
    <source src="video.webm" type='video/webm; codecs="vp8, vorbis"' />
    <source src="high.mp4" type='video/mp4; codecs="avc1.64001E, mp4a.40.2"' />
    <source src="main.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"' />
    <source src="baseline.mp4" type='video/mp4; codecs="avc1.58A01E, mp4a.40.2"' />
</video>

第一个MP4视频是高调视频,第二个主要配置文件和第三个基线配置文件。

在iPhone 3G上,是否会播放基线?

在iPhone 4S上,是否会播放高音?

后续问题:如果高调视频低于源列表中的基线配置文件视频,哪一个将在iPhone 4G上播放?

(感谢您阅读,特别是如果您回复。)

3 个答案:

答案 0 :(得分:13)

According to Mozilla<video>可以包含任意数量的<source>标记。此外,应播放第一个带有当前设备/浏览器兼容视频文件的源标签。

Apple themselves confirm <source>代码应该是开发人员首选的落实顺序,我假设Mobile Safari也会选择可以<的第一个文件/ em> play。

因此,从我能够挖掘的内容来看,没有一种静态的方法可以为特定的浏览器/设备组合选择特定的文件。您可能必须根据提供的用户代理字符串进行一些检测,并且只提供正确的文件(但使用纯HTML无法实现)。

答案 1 :(得分:3)

您可以提供多个源标记,用户代理应该播放它可以处理的第一个。

参见W3C定义:http://www.w3.org/TR/html5/embedded-content-0.html#the-source-element

还提供了回退的javascript示例。

http://www.w3.org/TR/html5/embedded-content-0.html#mime-types显示了一些javascript如何测试浏览器是否可以播放特定的编解码器。

答案 2 :(得分:2)

可以使用该元素指定多个源文件,以便为不同的浏览器提供以不同格式编码的视频或音频。例如:

<video controls> 
    <source src="foo.ogg" type="video/ogg">  <source src="foo.mp4" type="video/mp4">
    Your browser does not support the <code>video</code> element.
</video>