我有以下代码:

<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)可以在本地或我的生产服务器上播放任一文件(先由一个源标签测试,然后由另一个源标签测试)。
  • Safari(Mac 和 Win)可以在本地正常播放 mp4 文件,但 不是 从生产。
  • Firefox 3.6 无法在任一操作系统中播放视频。我只是在视频播放器区域的中间看到一个灰色的十字。
  • 我已确保 Mongrel 和 Apache 在每种情况下都设置了正确的 MIME 类型。
  • 从 Chrome 的结果来看,我知道我的视频文件或请求或传送文件的方式没有任何本质上的错误。

对于 Firefox,我查看了 https://developer.mozilla.org/En/Using_audio_and_video_in_Firefox 其中它指的是“错误”事件和“错误”属性。看起来“错误”事件很快就被抛出了,而且当时没有错误属性。有谁知道如何诊断问题?

有帮助吗?

解决方案

.ogg 的 HTTP 内容类型应为 application/ogg(.ogv 的 HTTP 内容类型应为 video/ogg),而 .mp4 的 HTTP 内容类型应为 video/mp4。您可以使用检查 网络嗅探器.

其他提示

将这些行添加到您的 .htaccess 文件中,它将适用于所有浏览器。对我有用。

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

如果您的网站中没有 .htaccess 文件,请创建一个新文件:) 我想这很明显。

顺便说一下,.ogv 文件是视频,因此“video/ogg”,.ogg 文件是 Vorbis 音频,因此“audio/ogg”和 .oga 文件是一般 Ogg 音频,因此“audio/ogg”也是如此。在 Firefox 中检查并工作。所有音频或视频用途均已弃用“application/ogg”。看 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;编解码器=theora,vorbis”。

另外,该标记在我的 Minefiled 3.7a5pre 中有效,因此如果您的 ogv 文件无法播放,它可能是一个伪造的文件。你是如何创建它的?您可能想在 Firefox 中注册错误。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top