2

我写了一个html5页面,源码如下:

<!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>

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

IE9 是否失去了 mp4 编解码器的能力(我确定 mp4 是用 H.264 编码的)?我怎样才能恢复能力?

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

发生了一件奇怪的事情。我在第一次运行之前和之后从未运行过 Windows 媒体播放器,如果视频标签的来源是本地文件,则可以播放。但如果是远程网址,则不会。谁能明白为什么?

4

3 回答 3

2
  1. 重新排序源 - 将 mp4 放在首位!
  2. 检查您的服务器是否为您的 mp4 发送了正确的 mime 类型(视频/mp4)。

两者都可以中断播放...

于 2012-09-14T06:50:14.400 回答
1

有时我看到 IE9 无法播放用B-Frames编码的视频。尝试在没有它们的情况下编码您的视频。您可以通过在命令行中添加选项“-bf 0”来使用 ffmpeg 执行此操作。

于 2012-09-15T06:21:51.880 回答
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".

于 2014-03-14T16:32:16.053 回答