HTML5视频错误 - Internet Explorer 9

3

我正在尝试使用html5视频标签在IE9中播放.m4v视频。当我从远程位置播放视频时,它可以正常工作:

<video src="http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer_480x270_h264aac.m4v" controls="controls">
</video>

但是当我想从我的服务器播放它时...
<video src="Big_Buck_Bunny_Trailer_480x270_h264aac.m4v" controls="controls">
</video> 

它只在Chrome中运行,而在IE9中无法运行。

什么原因会导致视频在我的服务器上无法播放?

非常感谢,

Chris


视频是否与HTML位于同一位置? - Neil Knight
嗨Ardman。是的,它在同一个目录中。当我在本地主机上测试时,视频在IE9中播放得很好,但是当它在我的服务器上时却不行。 - Kit
3个回答

5

为了使服务器将正确的MIME类型与应用程序关联,您需要在htaccess文件中包含MIME类型。

以下是几个可包含在.htaccess文件中的MIME类型示例:

#Video MIME Types:
AddType video/m4v .m4v
AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

5
我已经找到了问题所在。 IE9 RC 将视频视为纯文本而不是 video/m4v,因此无法播放。 Chrome 和 IE8 正确读取文件。
AddType video/x-m4v .m4v 添加到我的htaccess中可以确保IE9 RC能够将其作为video/mp4文件进行读取。
真是疯狂吧?

一点也不疯狂。<video>标签依赖于服务器发送正确的Content-Type头来请求视频文件。听起来你的服务器只是没有本地注册.m4v文件扩展名,所以它默认了。 - Remy Lebeau
噢,好的。Chrome 可以确定这是一个 m4v/视频文件,而 IE9 RC 却认为它是纯文本似乎有些奇怪。谢谢您的评论和答案。我会记住使用<source>标签。 - Kit
1
谢谢您。如果没有 MIME 类型,我可能会浪费几个小时都想不到它。 - David Stinemetze

3

除了需要服务器为请求的视频文件本身发送正确的 Content-Type 标头之外,您应该考虑使用子级 <source> 标签而不是 src 属性,例如:

<video controls="controls">
<source src="Big_Buck_Bunny_Trailer_480x270_h264aac.m4v" type='video/x-m4v; codecs="..."'>
</video> 

这将允许您事先指定实际的视频类型信息,以便浏览器可以决定是否下载文件。如果需要,还可以为您提供灵活性以后提供其他视频类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接