web-dev-qa-db-ja.com

HTML5で表示されるH.264エンコードMP4はSafariで再生されますが、iOSデバイスでは再生されません

私はAdobeMedia Encoder CS5を使用してFLVファイルをH.264にエンコードし、HTML5を介してWebに表示しています。ビデオファイルは、OS XのSafari(およびOGGにエンコードされたFirefox)でも問題なく再生されますが、iOSデバイス( iPad、iPhone)スラッシュが入った再生アイコンが表示されます。

誰かが以前にこれに遭遇したことがありますか?もしそうなら、その理由について何かアイデアはありますか?

ありがとう。

17
Tom

この問題が発生し、iPhoneのWebビューの標準に従ってファイルをエンコードすると、正常に再生されるファイルが作成されることがわかりました。

すべてのH.264エンコードされたMp4ファイルがiPhoneでサポートされているわけではありません(またはChrome)、エンコードプロセスのわずかな違いにより、動作しないビデオが生成される可能性があります。まったく同じエンコード設定であってもが使用された場合、H.264は可変ビットレートエンコーダであるため、さまざまなビデオがビットレート制限を超え、一部が機能する場合と機能しない場合があります。

私たちにとって成功したエンコーディング設定は次のとおりです。

  • H.264ベースラインプロファイルレベル3.0のみを使用してください
  • 解像度が640x 480未満、フレームレートが最大30 fps
  • Bフレームは、ベースラインプロファイルではサポートされていません。
  • 900kbのビットレート制限。

これが 参照 これらの設定に到達するために使用したものです。

26
BishopZ

これには明確な答えがあることは知っていますが、まったく同じ問題がありました。

問題は、内部ネットワークの設定になってしまいました。

IPadでサファリコンソールをオンにした後、ビデオを読み込もうとすると、「byte_range_error_message」がログに記録されていることがわかりました。モバイルデバイスは、一度に特定のバイトを要求することにより、デスクトップデバイスとは異なる方法でこのコンテンツを要求しているようです。電話が3Gネットワ​​ークを使用しているときはビデオが正常に再生されたが、内部Wi-Fiを介してビデオをロードしたときはそうではなかったことがわかりました。その後、多くの調査により、このMSDNの記事にたどり着きました。 http://support.Microsoft.com/kb/9223

これは、デバイスがビデオを適切に要求できるようにするためのファイアウォールの設定を見つける方法を説明しました。また、別のWi-Fiネットワーク用のD-Linkルーターの1つでも、同様の設定が問題を抱えていました。

6
Jeff