.mp4 文件无法在 chrome 中播放

Posted

技术标签:

【中文标题】.mp4 文件无法在 chrome 中播放【英文标题】:.mp4 file not playing in chrome 【发布时间】:2014-09-27 16:58:48 【问题描述】:

我想在我的网站上展示一段视频。我创建了一个 .mp4 文件并使用 html5 视频标签将其添加到 html 中。

问题是它没有在 chrome 中显示。我也想知道如何一次又一次地重播它。

【问题讨论】:

显示你到目前为止做了什么?添加一些代码。 我也有同样的问题。在 chrome 上,它不播放 mp4 视频。在 Firefox 上,确实如此。这是我的 HTML 代码:<video width="320" height="240" controls="controls"> <source src="movie.mp4" type="video/mp4"> Your browser does not support the video tag. </video> btw,我同意上述评论。您的问题需要更多信息。您应该发布您使用的确切代码、版本号以及您是否在其他浏览器上尝试过。你提供的信息越多,你得到的帮助就越多。我在 Windows 7、64 位上使用 Chorme 36.0.1985.125,并使用 firefox 31。 ... 上面的视频编码如下:H264-MPEG-4 AVC (part 10) (avc1)。所以看起来 Chrome 不再支持 H264 了。然而,在我所见的任何地方,所有网站都说 chrome 支持这种格式。去图吧。 在我的案例中发现了问题。原来是CSS问题。我在样式表中使用了overflow: hidden。由于某种原因,这使 Chrome 无法显示视频!当我删除它时,它现在显示没有问题。所以它与视频格式或编码无关。这只是一个浏览器 CSS 样式问题。 【参考方案1】:

在遇到同样的问题后 - 以下是我的一些想法:

由于 Chrome 删除了对 h264 的支持,在某些机器上,mp4 视频 用它编码要么不起作用(当 在 Firebug/Network 选项卡下查看 - 与提交的问题一致 此处),或使浏览器崩溃,具体取决于编码设置 不一致 - 这完全取决于安装的编解码器 在计算机上 - 虽然我没有在我的机器上遇到这个问题, 我们确实在发生问题的办公室里有一个(因此我们 用这个来测试) 可能与 Quicktime / divX 设置有关(机器在 问题的 Quicktime 版本比我的本地版本旧 - 我们 虽然不想丢失我们的测试电脑,所以我们没有更新它)。

由于它只影响 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 hack,但是,至少它有效。

来源:user: eithedog

这也有帮助:chrome could play html5 mp4 video but html5test said chrome did not support mp4 video codec

还可以在此处查看您的 crome 版本:html5test

【讨论】:

ffmpeg -i input.mp4 -vcodec h264 output.mp4重新编码视频文件解决我的问题 @Alston,您解决的问题不清楚。请张贴清晰的代码,说明我应该将它们放在哪里。 @ChristianLuneborg ffmpeg 是一个命令行实用程序。 ffmpeg.org你可能需要谷歌一个快速教程来安装它【参考方案2】:

这开始是为了尝试将视频从我的电脑投射到电视(带字幕),最终使用 Chromecast。我最终陷入了这种“不播放mp4”的境地。但是,我似乎已经证明 Chrome 可以播放(完全相同)mp4,只要它不包含在 html(5) 中 所以这就是我所构建的。我在 localhost 下创建了一个网页,其中有一个 default.htm,其中包含:-

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<video  controls >
 <source src="sample.mp4" type="video/mp4">
 <track kind="subtitles" src="sample.vtt" label="gcsubs" srclang="eng">
</video>
</body>
</html>

视频和字幕文件与default.htm存储在同一文件夹中

我有最新版本的 Chrome(今天早上刚刚更新)

当我在 Chrome 浏览器中键入适当的 localhost... 时,会出现一个带有“GO”箭头和经过时间栏、静音按钮和“CC”图标的黑色方块。如果我按下 go 箭头,则什么都不会发生(它不会更改为“暂停”,经过的时间不会移动,并且计时器停留在 0:00。没有错误消息 - 什么都没有!

(请注意,如果我输入 localhost.. 到 IE11 视频播放!!!!

如果我在 Chrome 中输入 sample.mp4 的光盘地址(即 C:\webstore\sample.mp4 那么 Chrome 会正常播放视频?。

这最后一点可能是 Chromecast 的有效解决方案,只是我看不到任何字幕。我真的想要一个带有工作字幕的解决方案。 我只是不明白 Chrome 中播放 mp4 的两种方法有什么不同

【讨论】:

同样的情况,你能找到带字幕的可行解决方案吗?【参考方案3】:

遇到同样的问题,我通过在 iMovie 中使用默认 mp4 设置重新转换文件解决了这个问题。

【讨论】:

听起来不错,但对于没有 Mac 的人,您能否将这些设置包括在内,以便其他视频编辑者可以尝试?【参考方案4】:

我也有同样的问题。我将编解码器更改为 H264-MPEG-4 AVC,视频开始在 HTML5/Chrome 中运行。

转换器中选择的选项:H264-MPEG-4 AVC,VLC 播放器中可见的编解码器:H264-MPEG-4 AVC(第 10 部分)(avc1)

希望对你有帮助...

【讨论】:

你在哪里改变了这个?怎么样? @Mike 可能在创建 .mp4 文件本身时。在浏览器中,您可以指定要尝试的编解码器。例如:&lt;source src="my.mp4" type='video/mp4; codecs="avc1.4d002a, mp4a.40.2"' /&gt;(来自MDN codecs paramater)。【参考方案5】:

实际上,我不久前在使用 mp4 时遇到了一些奇怪的错误。为我解决的问题是使用已知支持的编解码器(H.264 和 MP3)重新编码视频。

我实际上使用了VLC player 这样做,之后它工作得很好。我使用上述编解码器 H.264/MP3 进行了转换。这为我解决了。

也许问题不在于format,而在于play/ pause 方法的javascript 实现。我可以建议访问以下link Google 开发人员在其中解释得很好吗?

此外,您可以选择使用较新的 webp 格式,Chrome 支持开箱即用,但请注意使用其他浏览器。在实施之前检查对它的支持。这是描述上述格式的link。

关于这一点:我创建了一个小的script,它可以轻松地将所有标准格式转换为webp。您可以轻松配置它以满足您的需求。这是同一项目的Github repo。

【讨论】:

【参考方案6】:

(@Alston 将此作为评论发布,它对我和其他 9 人也投了赞成票,因此发布此作为答案以获得更多关注:)

只需使用此 FFMPEG 命令重新编码视频文件即可解决:

ffmpeg -i input.mp4 -vcodec h264 output.mp4

【讨论】:

以上是关于.mp4 文件无法在 chrome 中播放的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 无法播放 .mp4 文件

运行jekyll服务时,嵌入式本地mp4无法在Chrome中播放(ECONNRESET)

IE9 无法播放 MP4 文件

HTML5 视频无法仅在 Chrome 中播放

HTML5 - mp4 视频无法在 IE9 中播放

火狐浏览器,edge浏览器,chrome浏览器里面的mse&h264是啥?和播放mp4网页视频是啥关系