.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 文件本身时。在浏览器中,您可以指定要尝试的编解码器。例如:<source src="my.mp4" type='video/mp4; codecs="avc1.4d002a, mp4a.40.2"' />
(来自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 中播放的主要内容,如果未能解决你的问题,请参考以下文章