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

36 html5 html5-video internet-explorer-9

我有一个mp4视频,我想在IE9中使用HTML5 <video>标签播放.我将MIME类型添加到IIS 7中,因此如果我浏览http://localhost/video.mp4它在Chrome和IE9中播放但在HTML5中播放,则Chrome会播放HTML视频.这是代码:

<html>
<body>
  <video src="video.mp4" width="400" height="300" preload controls>
  </video>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢

更新:

在Firefox 5.0中尝试过相同的文件但它也无法正常工作,只有Chrome才能播放mp4视频.

小智 41

对于IE9,我发现需要一个元标记来设置模式

<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>

<video width="400" height="300" preload controls>
<source src="movie.mp4" type="video/mp4" />
Your browser does not support the video tag
</video>
Run Code Online (Sandbox Code Playgroud)

  • 还为chrome添加:<meta http-equiv ="X-UA-Compatible"content ="IE = edge,chrome = 1"/> (6认同)
  • @Navigatron澄清这是针对谷歌_ChromeFrame_,旧版IE的停产插件,_not_谷歌Chrome. (2认同)

小智 18

使用http://videojs.com/结束以支持所有浏览器.

但为了让视频在IE9和Chrome中运行,我只添加了html5 doc类型并使用了mp4:

<!DOCTYPE html>
<html>
<body>
  <video src="video.mp4" width="400" height="300" preload controls>
  </video>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


小智 17

如果它仍然无法在这里工作,那肯定是一个解决方案:用压缩格式H.264编码mp4.如果您使用格式mpeg4或divx对其进行编码,否则它将无法在IE9上运行,并且可能会使Google Chrome崩溃.为此,我使用Any Video Converter免费软件.但它可以用任何好的视频工具完成.

我一直在尝试这里列出的所有解决方案,并尝试了几天的其他解决方法,但问题在于我创建我的mp4的方式.IE9不解码除H.264之外的其他格式.

希望这有帮助,吉米


小智 8

Dan有一个最好的答案,我建议你在目标浏览器上使用html5test.com来查看支持的视频格式.

如上所述,没有单一格式可行,我使用的是MP4编码为H.264,WebM和闪回后备.这让我看看以下视频:

赢7 - IE9,Chrome,Firefox,Safari,Opera

Win XP - IE7,IE8,Chrome,Firefox,Safari,Opera

MacBook OS X - Chrome,Firefox,Safari,Opera

iPad 2,iPad 3

Linux - Android 2.3,Android 3

<video width="980" height="540" controls>
        <source src="images/placeholdername.mp4" type="video/mp4" />
        <source src="images/placeholdername.webm" type="video/webm" />
        <embed src="images/placeholdername.mp4" type="application/x-shockwave-flash" width="980" height="570" allowscriptaccess="always" allowfullscreen="true" autoplay="false"></embed>  <!--IE 8 - add 25-30 pixels to vid height to allow QT player controls-->    
    </video>
Run Code Online (Sandbox Code Playgroud)

注意:.mp4视频应使用h264基本配置文件进行编码,以便在所有移动设备上播放.

更新:为Flash回退添加了autoplay ="false".这可以防止MP4在IE8加载页面时立即开始播放,一旦按下播放按钮,它就会开始播放.


小智 6

Internet Explorer 9使用H.264编解码器支持MPEG4.但它还要求文件一开始下载就可以开始播放.

以下是如何制作在IE9中工作的MPEG文件的基本步骤(在Ubuntu上使用avconv).我花了很多时间才弄明白,所以我希望它可以帮助别人.

  1. 使用H.264编解码器将视频转换为MPEG4.你不需要任何花哨的东西,只需让avconv为你完成这项工作:

    avconv -i video.mp4 -vcodec libx264 pre_out.mp4
    
    Run Code Online (Sandbox Code Playgroud)
  2. 此视频适用于支持MPEG4的所有浏览器,IE9除外.要添加对IE9的支持,您必须将文件信息移动到文件头,以便浏览器可以在开始下载后立即开始播放.这是IE9的关键!

    qt-faststart pre_out.mp4 out.mp4
    
    Run Code Online (Sandbox Code Playgroud)

qt-faststart是一个Quicktime实用程序,也支持H.264/ACC文件格式.它是libav-tools包的一部分.