MP4无法在Chrome版本27.0上播放

时间:2013-06-05 10:25:41

标签: google-chrome

截至2013年6月5日的最新版Chrome(版本27.0.1453.110米)无法播放mp4视频。例如,W3Schools Video Sandbox为我提供视频控件,而不是其他内容。 (抱歉无法发布截屏,只是注册了StackO。)

任何人都知道为什么?并修复?

是:

回答这样的问题

chrome could play html5 mp4 video but html5test said chrome did not support mp4 video codec

有一个未答复的问题:

html5 video issue with chrome

6 个答案:

答案 0 :(得分:8)

遇到同样的问题 - 这是我的一些想法:

  • 由于Chrome删除了对h264的支持,在某些机器上,使用它编码的mp4视频将无效(在Firebug / Network标签下查看时出现Parser错误 - 与提交的问题here一致),或者崩溃浏览器,取决于编码设置
  • 它不一致 - 它完全取决于计算机上安装的编解码器 - 虽然我在我的机器上没有遇到这个问题,我们确实在办公室里有一个问题发生了(因此我们使用了这个用于测试)
  • 它可能与Quicktime / divX设置有关(有问题的机器有一个比我原来的版本更旧版本的Quicktime - 我们不想放弃我们的测试电脑,所以我们没有更新它。) / LI>

由于它仅影响Chrome(其他浏览器可以正常使用VideoForEverybody解决方案),我使用的解决方案是:

  • 对于每个mp4文件,创建一个Theora编码的mp4文件(example.mp4 - > example_c.mp4)
  • 申请以下js:

    if (window.chrome)
        $("[type=video\\\/mp4]").each(function()
        {
            $(this).attr('src', $(this).attr('src').replace(".mp4", "_c.mp4"));
        });
    

不幸的是,这是一个糟糕的Chrome黑客,但是嘿,至少它有效。

答案 1 :(得分:3)

我遇到了同样的问题,即使我没有得到任何答案,我试图用另一种方式解决它,这就是我所做的:

首先,将视频嵌入你的html:

<video id="videoId" width="100%" autoplay loop>
  <source src="main.webm" type="video/webm">
  <source src="main.mp4" type="video/mp4">

Your browser does not support the video tag.
</video>

然后检测浏览器是否为chrome:

var isChrome = !!window.chrome; 
var isIE = /*@cc_on!@*/false;

如果是Chrome,请用webm版本替换视频。 (对于那些自己没有遇到问题的人: 如果你同时嵌入mp4和webm,chr​​ome将不会播放任何一个,所以你必须只嵌入“webm”

if( isChrome ) {
$("#videoId").replaceWith($('<video id="videoId" width="100%" autoplay loop><source src="video.webm" type="video/webm"></video>'));
}

至于IE: 在我的情况下,我用图像替换了html5视频:

if( isIE ) {
$("#videoId").replaceWith($('<img id="videoId" src="img/video.jpg" />'));
} 

答案 2 :(得分:3)

Chrome似乎加载了宣布的第一个视频。因此,对于播放webMV的Chrome,首先声明webMV视频,然后声明mp4视频,依此类推。

答案 3 :(得分:0)

答案在上一篇文章中虽然很难找到:

chrome could play html5 mp4 video but html5test said chrome did not support mp4 video codec

它与逐步淘汰Chrome中的mp4支持有关,支持webm开放格式。目前浏览器支持似乎是虚假的。有关详细信息,请参阅帖子。

Cromium论坛提供了有关编解码器支持的更多信息。

希望这有帮助。

答案 4 :(得分:0)

我在Chrome版本上也遇到此问题:Windows7 64位上的28.0.1500.72。 虽然它不会影响WinXP上相同版本的Chrome。 根据我所读到的,这个问题在不同的主机上是非常零星的,取决于许多变量。但是,由于一些快速的jquery,我能够为潜在的Chrome用户解决此问题。

感谢Sony Flat指出我的方向

var isChrome = !!window.chrome; 
var isIE = /*@cc_on!@*/false;

if( isChrome ) {
$("#videoId").replaceWith($('<video id="videoId" width="100%" autoplay loop><source src="video.webm" type="video/webm"></video>'));
}

答案 5 :(得分:0)

感谢eithedog。 此代码可供我使用“视频”标记在Chrome上播放视频

if (window.chrome) {
                $("[type=video\\\/mp4]").each(function () {
                    $(this).attr('src', $(this).attr('src').replace(".mp4", "_c.mp4"));
                });
            }