IE9解码mp4文件的HTML5视频错误

时间:2012-09-13 05:33:23

标签: html5 video internet-explorer-9 mp4 codec

我写了一个html5页面,源代码是fllows:

<!doctype html5>
....
<video id="vdemo1" controls  width="440" height="248">
  <source src='http://mysite.com/demo.webm' type='video/webm'>
  <source src='http://mysite.com/demo.mp4' type='video/mp4'>
  // fallback codes
</video>

视频标签的输出是一个空黑框。按照此网址上的说明:HTML5 Video not working in IE9 - Some tips to debug,它会显示MEDIA_ERR_DECODE错误代码。但是,我可以右键单击空视口并选择“播放”项,但视口中没有任何内容。右键单击并选择“保存”将mp4文件保存到本地高清后,可以在操作系统下播放。我甚至将视频src更改为本地文件,但它没有帮助!

IE9是否会失去mp4编解码器能力(我确定mp4是用H.264编码的)?我怎样才能重新获得这种能力?

======= 编辑@ 2012/10/9

发生了一件奇怪的事。我第一次运行之前和之后都没有运行Windows媒体播放器,如果视频标签的源是本地文件,它可以播放。但如果远程url,那么它不会。谁能明白为什么?

2 个答案:

答案 0 :(得分:2)

  1. 重新排序来源 - 将mp4放在首位!
  2. 检查您的服务器是否为您的mp4发送了正确的MIME类型(video / mp4)。
  3. 两者都可以打破播放......

答案 1 :(得分:0)

在某些情况下,Internet Explorer会引发解码错误(MEDIA_ERR_DECODE - 在资源建立后可用于解码媒体资源时出错)并且无法播放尺寸不均匀的视频到16点。   例如,它可以完美地播放960x400(960%16 == 0和400%16 == 0)的视频,但是当将尺寸缩小一半(480x200)时,它将无法播放(480%16 == 0但是200%16!= 0)。

解决此问题的一种方法是将重新调整大小的视频封装在具有已知良好几何形状的区域中,然后用黑条填充剩余区域以避免扭曲纵横比。   为此,我们使用了以下代码,这些代码改编自我现在似乎无法跟踪的不同SO答案:-vf "scale=iw*min(640/iw\,480/ih):ih*min(640/iw\,480/ih),pad=640:480:(640-iw)/2:(480-ih)/2"