web-dev-qa-db-ja.com

Linuxで変換されたビデオがモバイルブラウザーで再生されない

avconvおよびffmpegを使用してビデオファイルを変換しましたが、このプロセス後のこれらのファイルはモバイルブラウザーでは機能しませんでした。 VLCまたはデスクトップの他のブラウザー(LinuxまたはWindows)でのみ機能します。

そして、StackOverflowで見られる変換にすべてのコードを使用しました! H264またはVP9コーデックを使用するMP4またはWebMは機能しません。

最後に使用したコードは次のとおりです。

ffmpeg -i buck.webm -b 1500k -vcodec libx264 -profile:v baseline -g 30 "example.mp4"

PCでは正常に動作しますが、モバイルブラウザー(ChromeまたはFirefox)では動作しません。

どうすればいいですか?

2
Marcos Gabriel

Android開発者向けにこのドキュメントをよく見てください:

サポートされているメディア形式

これはベースライン設定のみを提供し、特定のモバイルデバイスは、表にリストされていない追加の形式またはファイルタイプをサポートする場合があることに注意してください。

これに基づいて、video codecの選択とこのcodecの設定は受け入れられるように見えますが、コマンドラインでaudio codecにaacを指定した方が良いでしょう。これにより、再生が正常に行われるさまざまなデバイスが可能になります。

FFmpegの推奨コマンドラインは次のとおりです。

ffmpeg -i input \
        -c:v libx264 -preset slow -crf 22 \
        -profile:v baseline -level 3.0 \
        -movflags +faststart -pix_fmt yuv420p \
        -c:a libfdk_aac -b:a 128k \
        output.mp4

このコマンドラインの選択に関するいくつかのポイント:

  1. 幅広いデバイスとの最大の互換性のために 推奨-profile:v baseline -level 3.0を使用する
  2. ファイルをオンラインで表示する場合は、-movflags +faststartを追加することをお勧めします。この設定で再生を開始する必要がありますbefore完全にダウンロード済み
  3. -pix_fmt yuv420pを使用して、より広い範囲のデバイスで再生できるようにします
  4. libfdk_aacは、ネイティブFFmpeg AACエンコーダーよりも優れたAACサウンドを提供します(このエンコーダーがまだ「実験的」とマークされていた場合)

このコマンドラインを使用してテストするために、作業サンプル here を提供しました。

2
andrew.46