在不同的浏览器中播放不同类型的视频

时间:2015-06-02 08:15:23

标签: html video

我有三种类型的视频,即.wmv,.avi和.mov

以下对象代码可以用于IE并播放WMV文件。但是如何在Chrome / Firefox中播放.avi,或在Safari / Opera中播放.mov?

<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" id="player" width="100%" height="600">
<param name="url" value="file.wmv" />
<param name="src" value="file.wmv" />
<param name="showcontrols" value="true" />
<param name="autostart" value="false" />
<!--[if !IE]>-->
<object type="application/x-oleobject" data="file.avi" width="100%" height="600">
<param name="src" value="file.avi" />
<param name="autostart" value="false" />
<param name="controller" value="true" />
</object>
<!--<![endif]-->
</object>
下午17:12 .---- 我已经使用HTML5编码修改了代码,现在Chrome可以播放.mov文件,但仍然无法在Firefox / Safari / Opera中播放视频。

<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" id="player" width="100%" height="600">
<param name="url" value="file.wmv" />
<param name="src" value="file.wmv" />
<param name="showcontrols" value="true" />
<param name="autostart" value="false" />
<!--[if !IE]>-->
<video width="100%" height="600" preload controls>
<source src="file.avi" />
<source src="file.mov" />
<source src="file.wmv" />
</video>
<!--<![endif]-->
</object>

3 个答案:

答案 0 :(得分:1)

请查看此链接,以便对使用最少数量的视频格式提供尽可能多的覆盖率的方法有一个很好的概述:

更新和背景

正如Nisse在下面指出的那样,提供一些当前最佳实践的例子通常会更好。问题是域名变化如此之快,以至于我发现提供最新概述的少数网站对于获取当前状态非常宝贵。

变化如此之大的原因是由于以下几个因素:

多个视频编解码器

编解码器将“原始”视频编码为通常较小的格式,以便于存储和传输。为什么有这么疯狂的不同视频格式?有些存在是因为已经开发出需要新格式的更好的压缩技术,并且存在一些因为人们发现一些现有的良好格式太多许可或专利受阻。有些可能只是因为不同的公司或标准组织同时产生了类似的标准。

多个流媒体'容器'

容器'包'或包装一个或多个音频和视频流,并提供将它们作为组合实体从一个地方流到另一个地方(例如服务器到客户端)的方法。为了允许不同网络条件的不同比特率,许多现在支持自适应比特率技术 - 基本上它们在服务器上提供不同比特率的多个视频流,并且客户端可以根据网络拥塞在它们之间切换。现有的主要ABR格式与特定公司相关 - 苹果的HLS,Microsoft的Smooth Streaming和Adobe的Adaptive Streaming。还有一种新兴的开放行业标准MPEG DASH。与您的不同视频格式一样,不同的浏览器和设备甚至设备中的Javascript播放器都支持不同的ABR协议,而且目前这种情况也在迅速变化。 DASH和相关的开放式DRM方法CENC使用HTML5 MSE和EME扩展(媒体源扩展和加密媒体扩展)。

多个快速发展的客户

移动设备和Web浏览器现在都以惊人的速度发展 - 许多浏览器都设置为自动更新,移动设备的替换率意味着新设备每天都在投入使用。与此同时,有一定比例的用户会继续使用较旧的设备,但仍希望能够播放您的视频。较新的设备,浏览器和媒体播放器倾向于支持更新的规格,不出所料,但不幸的是,它们有时也会放弃对旧版本的支持 - 通常是出于合理的原因,因为维持对多种格式的支持太多了。

所以...

这对您来说意味着在尽可能多的不同设备上播放您的内容,此时您需要拥有多个不同版本的视频。理想情况下,您不仅可以使用不同的编码和文件类型,还可以使用不同的比特率版本来支持自适应比特率流式传输。

正如你所看到的,除非你专注于这个领域,否则很难掌握这一点 - 这就是为什么我发现使用一些更好的支持网站在任何给定时间检查当前状态是一个好方法。

上面列出的网站非常有用,因为它不仅提供了当前位置的摘要,还提供了通常保持最新的建议脚本,以匹配最新的浏览器等版本。

除了上面提到的其他一些我认为有用的网站:

答案 1 :(得分:0)

检查php或javascript中的for loop并相应地调整视频。

在javascript中:

user-agent

然后选择使用的浏览器。

在PHP中:

var x = "User-agent header sent: " + navigator.userAgent;

您可以根据其中任何一个返回来调整视频文件。

答案 2 :(得分:0)

您还可以选择MPEG-DASH或HLS等自适应流式传输格式。例如。 bitdash player通过使用HTML5 MSE或在Flash中使用MPEG-DASH播放,在所有浏览器中播放MPEG-DASH内容。