在HTML5中呈现的H.264编码的MP4在Safari上播放但在iOS设备上播放

时间:2010-11-21 22:56:52

标签: ipad html5 ios mp4 h.264

我正在使用Adobe Media Encoder CS5将FLV文件编码为H.264以通过HTML5呈现在网络上,并且视频文件在OS X中的Safari(以及在编码为OGG的Firefox中)中播放得很好但在任何iOS设备(iPad,iPhone)我得到了带有斜线的播放图标。

之前有没有人遇到过这个问题,如果有的话,有什么想法可以解释?

感谢。

2 个答案:

答案 0 :(得分:23)

我们遇到了这个问题,发现根据iPhone的webview标准对文件进行编码可以创建出色的文件。

并非iPhone(或Chrome)支持所有H.264编码的Mp4文件,编码过程中的细微差别可能会产生不起作用的视频。即使使用了完全相同的编码设置,H.264也是一个可变比特率编码器,因此不同的视频可能会超出比特率限制,导致一些视频有效,而其他视频信号则无效。

我们成功的编码设置是:

  • 仅使用H.264 Baseline Profile Level 3.0
  • 分辨率低于640 x 480,帧率高达30 fps
  • 基线配置文件中不支持B帧。
  • 比特率限制为900kb。

以下是我们用于达到这些设置的reference

答案 1 :(得分:5)

我知道这有明显的答案,但我们遇到了完全相同的问题。

问题最终成为我们内部网络的设置。

打开iPad上的safari控制台后,我们看到在尝试加载视频时,我们正在记录“byte_range_error_message”。移动设备似乎通过一次请求某些字节来请求与桌面设备不同的内容。我们设法发现当手机使用3G网络时视频播放正常,但是当他们通过内部wifi加载视频时却没有。很多研究后来引导我们阅读这篇MSDN文章: http://support.microsoft.com/kb/922330

其中介绍了如何在防火墙中找到设置以允许设备正确请求视频。我们还在我们的一个D-Link路由器上找到了类似的设置,用于单独的wifi网络,该网络也存在问题。