Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5视频(mp4和ogv)在Safari和Firefox中存在问题,但Chrome还是不错的_Firefox_Video_Safari_Html_Ogg Theora - Fatal编程技术网

HTML5视频(mp4和ogv)在Safari和Firefox中存在问题,但Chrome还是不错的

HTML5视频(mp4和ogv)在Safari和Firefox中存在问题,但Chrome还是不错的,firefox,video,safari,html,ogg-theora,Firefox,Video,Safari,Html,Ogg Theora,我有以下代码: <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; c

我有以下代码:

<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文件,但不能在生产环境中播放
  • Firefox3.6不会在这两个操作系统中播放视频。我只是在视频播放器区域中间有一个灰色十字。
  • 我已经确保Mongrel和Apache在每种情况下都设置了正确的MIME类型
  • 从Chrome的结果中,我知道我的视频文件或文件被索取或传送的方式没有本质上的问题

对于Firefox,我查看了它引用“错误”事件和“错误”属性的位置。“error”事件似乎是直接抛出的,当时没有error属性。有人知道如何诊断问题吗

我在文档页面中看到这样一个示例:

<source src="foo.ogg" type="video/ogg; codecs=&quot;dirac, speex&quot;">

也许您应该将
编解码器
信息用
实体而不是实际引号括起来,将
类型
属性用引号而不是撇号括起来


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

对于.ogg,HTTP内容类型应该是application/ogg(video/ogg for.ogv),对于.mp4,它应该是video/mp4。您可以检查使用。

只需删除内部引号-它们会混淆Firefox。您只需使用“video/ogg;编解码器=theora,vorbis”


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

顺便说一句,.ogv文件是视频,所以“video/ogg”、.ogg文件是Vorbis音频,所以“audio/ogg”和.oga文件是通用的ogg音频,所以“audio/ogg”也是通用的“。已签入Firefox并开始工作。所有音频或视频使用都不推荐使用“应用程序/ogg”。请参见

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

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

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

如果你的站点中没有.htaccess文件,那么创建一个新的:)我想这很明显。

尝试在firefox中打开视频文件,看看它是否播放。这可能是一个线索。无论我是在本地还是在生产服务器上尝试,系统都会提示我下载该文件。听起来可能是个哑剧问题。。?但是我已经检查过了,检查过了,这些都是为.ogv设置的。吼叫声如何检查Apache是否注意MIME设置。。?有什么线索吗?只是在Chrome上试过了(视频播放效果很好),如果我把URL放在位置栏中,它也会下载文件……无论我是在本地还是在服务器上尝试,都是如此……要获取MIME类型,请执行curl,几秒钟后停止。它将打印出发送的标题。这总是有效的,而Firebug等不会为下载的文件打印MIME。谢谢,bogdanvursu。非常感谢。不过,恐怕这两个建议都没用(如果外引号是双引号,则需要将内引号转义为"。如果外部引号是单引号,则不需要转义内部双引号。啊哈。我使用Web嗅探器检查了这一点,我得到的内容类型为application/octet stream。因此对于Firefox来说,它看起来像是MIME类型的问题。谢谢-我将看看是否可以从这里解决它。不过,Safari仍然存在问题。。。 :(我有一个Apache错误配置,Firefox问题确实是由于发送了错误的MIME类型造成的。谢谢!我现在也发现了我的Safari问题-另一个错误配置。所有问题都解决了!谢谢,伙计们。@Xivonen那么,你用Firefox和Safari解决问题的视频标签到底是什么?为什么要发布你修复的帖子如果您不费心描述如何使用,那么问题就出在哪里了?如果您使用Apache,解决方案是使用配置Apache发送正确的Mime类型,或者简单地使用一个.htaccess文件和以下行:AddType video/ogg.ogv内部引号是必需的不正确ogg不受iSadly支持,它对我不起作用。我正在尝试m4v视频。你能给他们推荐一下像.ogv.mp4一样的吗。webm@NJInamdar第二次使用
AddType video/mp4.mp4.m4v
line@AakilFernandes:谢谢你的答复。但遗憾的是,它没有起作用(