【问题标题】:H.264 encoded MP4 presented in HTML5 plays on Safari but not iOS devices以 HTML5 呈现的 H.264 编码 MP4 在 Safari 上播放,但在 iOS 设备上不播放
【发布时间】:2011-05-13 13:24:34
【问题描述】:

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

以前有没有人遇到过这种情况,如果有,有什么想法吗?

谢谢。

【问题讨论】:

标签: ipad html ios mp4 h.264


【解决方案1】:

我们遇到了这个问题,发现按照 iPhone 的 webview 标准对文件进行编码可以创建可以正常播放的文件。

并非所有 H.264 编码的 Mp4 文件都受 iPhone(或 Chrome)支持,编码过程中的细微差别可能会产生无法播放的视频。即使使用完全相同的编码设置,H.264 也是一种可变比特率编码器,因此不同的视频可能会超过比特率限制,导致一些工作正常而另一些不工作。

对我们来说成功的编码设置是:

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

这是我们用来达到这些设置的reference

【讨论】:

  • 对于后效用户:可以在输出模块设置/格式选项/视频--级别中找到h.264级别
  • 切勿使用编码选项“Fast Start”(在 Handbrake 中称为“Web Optimized”),否则视频将无法在 iOS 设备上播放。详情请参阅stackoverflow.com/a/24076523/1066234
  • 参考链接当前指向通用页面。我认为现在正确的链接是this one。如果是这样的话,Bishop 能否确认并更新一下?
【解决方案2】:

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

问题最终出在我们内部网络的设置上。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 2017-10-24
    • 2011-09-11
    • 2018-03-11
    • 2013-02-22
    • 1970-01-01
    相关资源
    最近更新 更多