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=&quot;dirac, speex&quot;"> 

也许你应该把codec信息与&quot; 实体而不是实际的引号和type属性用引号而不是撇号。

您也可以尝试完全删除编解码器信息。

只要删除内部的引号 – 他们混淆了Firefox。 你可以使用“video / ogg; codecs = theora,vorbis”。

另外,这个标记在我的Minefiled 3.7a5pre中起作用,所以如果你的ogv文件不能播放,它可能是一个伪造文件。 你是怎么创造的? 你可能想注册一个Firefox的错误。

只需要更改一个字母:),将640×360.ogv重命名为640×360.ogg,它将适用于所有3个浏览器。