web-dev-qa-db-ja.com

HTML5互換の「Videoforeverybody」を入手するには、どのようなffmpegスクリプトが必要ですか?

使用するすべての適切な形式のビデオを取得するには、ffmpeg/mencoder/some_other_CLI_appでどのコマンドリストを実行する必要がありますか Video for Everybody

つまり、次のような機械的なチュートリアルが存在するのを妨げる微妙な点はありますか?

VIDEO=video.mp4
TYPE=$(ffmpeg --find-information-about-the-video ... )
ffmpeg ... > video.mov
ffmpeg ... > video.flv
ffmpeg ... > video.webm
ffmpeg ... > video.h.264
...

次に、Video for Everybodyコードをコピーしてページに貼り付けますか?

私の目標は、私がホストしている個人のWebページにビデオを埋め込むことです。フラッシュフォールバックを備えたHTML5が推奨されるため、最も簡単な方法はVideo forEverybodyのようです。しかし、そのページは、ビデオをすべての異なる形式にエンコードするという最も複雑な部分を、読者が読むことによって理解するために残しています ビデオ形式に関する長くて完全な記事 。確かにこれは必要ありません。ユーザーが音声ファイルをさまざまな形式に盲目的に変換するためのコマンドのリストを提供できます。うまくいけば、ffmpegの第一人者がビデオに対して同じことをすることができます。

12

注:この回答は、最初の投稿以降、大幅に編集されています。今は2017年です。ストリーミングの動作は以前とは異なります。このガイドでは、アダプティブストリーミングを使用せずに、特定の解像度で1つのビデオストリームを単純にプログレッシブダウンロードすることを前提としています。

要件

まず、必ず 最近のffmpegバージョンをダウンロード (静的ビルドをダウンロードします。apt-get install ffmpegなどを呼び出さないでください)。理想的には、 自分でコンパイルしてください 。それほど時間はかかりません。

ほとんどのブラウザでサポートされているビデオを生成するには、常に最新の 互換性テーブル を確認してください。すべてのブラウザで機能する単一のコーデック/フォーマットはありませんが、MP4でH.264を生成し、WebMでVP9を生成し、それぞれのオーディオコーデックを使用すると、Chrome、Firefox、Safari、および一部のバージョンのIEがサポートされます。

WebM(VP9/Vorbis)

FFmpeg VP9ガイド の推奨事項に従い、レート制約のある2パスエンコーディングアプローチを使用します。

ffmpeg -y -i input-c:v libvpx-vp9 -b:v 2000k -minrate 500k -maxrate 2500k -c:a libvorbis -pass 1 -f webm /dev/null && \
ffmpeg -i input-c:v libvpx-vp9 -b:v 2000k -minrate 500k -maxrate 2500k -c:a libvorbis -pass 2 output.webm

目標ビットレートは、解像度、フレームレート、コンテンツの種類、および必要な品質によって異なります。 2.5 MBit/sは、30fpsのHDビデオに適した妥協点です。いくつかの推奨事項については、 このGoogleガイド を参照してください。

MP4(H.264/AAC)

FFmpeg H.264ガイド の推奨事項に従い、レート制約のある2パスエンコーディングアプローチを使用します。

ffmpeg -y -i input -c:v libx264 -b:v 5000k -minrate 1000k -maxrate 8000k -pass 1 -c:a aac -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -b:v 5000k -minrate 1000k -maxrate 8000k -pass 2 -c:a aac -movflags faststart output.mp4

ここでは、H.264はそれほど効率的ではないため、ターゲットビットレートはVP9ビデオよりも約50%高くする必要があります。 2番目のパスに-movflags faststartオプションを追加して、ビデオの初期読み込みを高速化します。

オーディオオプションの設定については、 AACエンコーディングガイド を参照してください。

21
slhck