Safari和Firefox中的HTML5video(mp4和ogv)问题 – 但是Chrome都很好
我有以下代码:
<video width="640" height="360" controls id="video-player" poster="/movies/poster.png"> <source src="/movies/640x360.m4v" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> <source src="/movies/640x360.ogv" type='video/ogg; codecs="theora, vorbis"'> </video>
- 我正在使用Rails(Mongrel开发和Mongrel + Apache生产)。
- Chrome(Mac和Win)可以在本地或从我的生产服务器上播放任一文件(由其他源标签进行testing)。
- Safari(Mac和Win)可以在本地播放mp4文件,但不能播放。
- Firefox 3.6不会在任何一个操作系统中播放video。 我只是在video播放器区域中间出现一个灰色的十字。
- 我已经确定Mongrel和Apache在每种情况下都有正确的MIMEtypes集。
- 从Chrome的结果来看,我知道我的video文件或文件被要求或交付的方式并没有天生的错误。
对于Firefox,我查看了https://developer.mozilla.org/En/Using_audio_and_video_in_Firefox ,它引用了“错误”事件和“错误”属性。 看起来,“错误”事件很容易理解,当时没有错误属性。 有谁知道如何诊断问题?
.ogg的HTTP Content-Type应该是application / ogg(.ogv的video/ ogg),而.mp4应该是video / mp4。 您可以使用Web嗅探器进行检查。
将这些行添加到.htaccess文件中,它将适用于所有浏览器。 为我工作。
AddType video/ogg .ogv AddType video/mp4 .mp4 AddType video/webm .webm
如果你有你的网站.htaccess文件,然后创build新的:)其显而易见,我猜。
顺便说一下,.ogv文件是video,所以“video / ogg”,.ogg文件是Vorbisaudio,所以“audio / ogg”和.oga文件是一般的Oggaudio,也就是“audio / ogg”。 检查在Firefox和工作。 “application / ogg”已弃用于所有audio或video应用。 见http://www.rfc-editor.org/rfc/rfc5334.txt
我在文档页面看到这样一个例子:
<source src="foo.ogg" type="video/ogg; codecs="dirac, speex"">
也许你应该把codec
信息与"
实体而不是实际的引号和type
属性用引号而不是撇号。
您也可以尝试完全删除编解码器信息。
只要删除内部的引号 – 他们混淆了Firefox。 你可以使用“video / ogg; codecs = theora,vorbis”。
另外,这个标记在我的Minefiled 3.7a5pre中起作用,所以如果你的ogv文件不能播放,它可能是一个伪造文件。 你是怎么创造的? 你可能想注册一个Firefox的错误。
只需要更改一个字母:),将640×360.ogv重命名为640×360.ogg,它将适用于所有3个浏览器。