IE9没有显示mp4视频?

时间:2012-09-06 13:00:02

标签: html html5 internet-explorer-9 html5-video

IE9正在推动我疯狂支持HTML5视频,据我所知,它支持H.264编解码器,所以任何文件都有.mp4扩展名。

问题是,它不播放扩展名为.mp4的视频文件。 。

更不寻常的是,如果我在本地测试,IE9将播放mp4视频,它只是不在服务器上播放,这也与MIME类型无关,我添加了以下MIME类型服务器:

.mp4 - video.mp4

在IE开发者工具的网络面板中,它列出的类型为“video / mp4”,唯一不寻常的是网络面板显示IE正在请求它3次(我不知道为什么会这样)

我已经到了我的系绳的末端,以至于我实际上编写了下面的代码来尝试修复它(我真的很讨厌在现场网站上使用它,这太可怕了):

    <!--[if !IE 9]><!-->
         <video controls="controls">
<!--<![endif]-->

<!-- This is a horrible way to do this, but I cannot figure out for the life of me why IE9 won't play this video :( -->
<!--[if !IE 9]><!-->
    <source src="video.ogv" type='video/ogg; codecs="theora, vorbis"'/>
    <source src="video.mp4" type="video/mp4">
<!--<![endif]-->

<!-- If HTML5 video is not supported, the following Flash video will play -->
<p>flash video stuff is here</p>

<!--[if !IE 9]><!-->
        </video>
<!--<![endif]-->

这通过强制IE9将Flash视频用于不支持HTML视频的浏览器来修复它(而不是默认情况下这样做IE9似乎只显示一个空白框,没有错误信息,没有任何内容)。不幸的是,这个解决方案太可怕了,我写起来几乎感到羞耻。

有人知道是什么原因引起的吗?或者我如何解决它?

编辑:不确定这是否有意义,但我使用http://www.freemake.com/free_video_converter/将文件转换为正确的格式

3 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。当你在本地运行HTML文件时,IE9会播放视频,但当你把它放在服务器上时它会停止工作。问题必须与视频文件有关。鉴于它在本地工作,你认为它不可能。但似乎是这种情况。当我在VideoJS网站(http://vjs.zencdn.net/v/oceans.mp4)下载示例视频文件并将其放入我自己的设置时,IE9播放它就好了。因此IE9在播放远程文件时会更加挑剔。

当我弄清楚使IE9满意时需要哪些神奇的参数时,我会更新这个答案。

更新:好的,我想我已经明白了。我花了一些时间来比较MP4文件和无效的MP4文件。在前者中,随机访问索引(“stss”atom)位于文件开头附近。在后者中,它位于文件的末尾。这两个位置都是合法的,但显然当IE9从网上下载文件时,IE9在文件末尾找不到它太愚蠢了。

解决方案是使用ffmpeg:qt-faststart附带的工具将随机访问索引移动到MP4文件的开头。

注意:我尝试了另一种工具:QTIndexSwapper。它似乎使文件损坏。

答案 1 :(得分:1)

我仍然完全不知道造成这种情况的原因,我花了几个小时挖掘和挖掘,最后要求其他人尝试使用他们的IE9版本,因为某些原因它在他们的计算机上运行而不是我的。

我不完全确定为什么,我只是把它归结为我的IE9版本以某种方式被破坏(考虑到我花了多少时间来解决这个问题,这是令人沮丧的!)

答案 2 :(得分:0)

stackoverflow有一个答案。

也许这对你有用:

HTML5 - mp4 video does not play in IE9

我希望这会有所帮助......