web-dev-qa-db-ja.com

iPhone「再生できません」.mp4H.264ビデオファイル

.mp4ビデオファイルへのリンクを含むクライアント用の単純なモバイルページを設定しようとしています。 Lke so:

<a href="My_Video_File.mp4" target="_blank">Watch MP4 Video</a>

そして、私は明らかに私のビデオファイルを適切に調達しており、.mp4には次の特徴があります。

Dimension: 480 * 272
Codecs: AAC, H.264, MPEG-4 SDSM, MPEG-4 ODSM
Channel Count: 2
Total Bitrate: 991
Size: 11.4MB

しかし、問題は、iPhoneが「映画を再生できません」というリンクをクリックすると表示されることです。理由はわかりません。

何か助けはありますか?

前もって感謝します。

11
AJB

私はついにこれを理解しました。

問題は部分的にエンコーディングに関係していましたが、より多くは寸法に関係していました。

.mp4ファイルのサイズが640 * 360より大きい場合、iPhone(iPad、iPod)はユーザーにそれを再生するオプションさえ与えないことがわかりました。 X'dout再生ボタンアイコンが表示されます。

また、これらのデバイスは、ベースラインH.264プロファイルでエンコードされた.mp4のみをサポートしているか、再生できません。

また、iPhoneには1.5Mbのビットレート制限がありますが、ビットレートを900kb未満に保つことをお勧めします。

サイズよりも品質の方が問題が少ない場合は、より大きなサイズのm4vを使用できますが、ビットレートのルールは引き続き適用されると思います。

これが他の誰かに役立つことを願っています。

19
AJB

私は同様の問題に遭遇しました、そして私の推測はエンコーディングでした。 Adobe Premiere CS4(Adobe Media Encoder)で「iPhone」プリセットを試してみましたが、うまくいきませんでした。

以下を使用してffmpegを実行すると、トリックが実行されました。

ffmpeg -i INPUT -s 320x240 -r 30000/1001 -b 200k -bt 240k -vcodec libx264 -coder 0 -bf 0 -refs 1 -flags2 -wpred-dct8x8 -level 30 -maxrate 10M -bufsize 10M -acodec libfaac -ac 2 -ar 48000 -ab 192k OUTPUT.mp4

私はここで上記(および他の多くの構成)を見つけました: http://rodrigopolo.com/ffmpeg/cheats.html (「iPod-iPhone640幅、プレスなし」のいくつかのタイプミスを修正しました[原文のまま]。)

他の検索では、iPhoneで再生する映画のエンコード要件(h.264ベースライン3.0)とサイズ要件に関する詳細情報が得られる可能性があります。

公式Appleこの件に関するリファレンス: http://developer.Apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/CreatingVideoforSafarioniPhone/CreatingVideoforSafarioniPhone.html

9
jeffreypriebe

H254ビデオはプログレッシブである必要があります。 H.264プリセットを選択し、ビデオを低からプログレッシブに変更します。

4
Robert Randy

これは私のためにそれをしました:

ffmpeg -an -i movie.mp4 -vcodec libx264 -codec:a libmp3lame -qscale:a 1 -pix_fmt yuv420p -profile:v baseline -level 3 output.mp4

ここではmp3コーデックを使用しました。これでiPhoneのmp4の問題が修正されました! Thismattersに感謝します!

2
Filip Mertens

私が生成していたビデオでも同様の状況に遭遇しました。ローカルマシンでも、.mp4をサポートするブラウザでも問題なく再生されます。ただし、iPhoneで表示しようとすると、必ず取り消し線の付いた再生ボタンが表示されます。読んだ後 ffmpeg docs 私は以下を使ってみました、そしてそれは私のiPhoneと私が試すことができた他のデバイスで美しく働きました。

ffmpeg -i input.mkv -c:v libx264 -crf 28 -preset veryslow -tune fastdecode \
  -profile:v baseline -level 3.0 -movflags +faststart -c:a libfdk_aac -ac 2 \
  -ar 44100 -ab 64k -threads 0 -f mp4 output.mp4

私が扱っているビデオは30fpsで1280x720であり、最終的にそれを機能させるオプションは

-profile:v baseline -level 3.0

お役に立てれば。

0
Thismatters