web-dev-qa-db-ja.com

FFMPEG変換メディアタイプとMOOVの再配置atom

私はこの行をオンラインで見つけました

ffmpeg -i input.mp4 -c:a copy -c:v copy -movflags faststart output.mp4

これは入力を受け取り、オーディオ、ビデオをコピーし、MOOV atomをoutput.mp4という要素の先頭に設定します。基本的に、新しい場所にMOOVアトムを使用して同じビデオを作成します。

私はこのメディアのタイプを変換する必要があります-だから私はラインを持っています

ffmpeg -i input.wmv -vcodec h264 -f mp4 output.mp4

私の問題は、これは一行で可能ですか?私は次々に実行できることを知っていますが、結果のビデオだけが必要なときにいくつかのビデオが作成され、多くのメモリが無駄になる可能性があります。

私はラインを確信しています

ffmpeg -i input.wmv -movflags faststart -vcodec h264 -f mp4 output.mp4 

正当ですが、ストレートコピーがないと、計算に長い時間がかかります。

MOOVアトムとffmpeg計算に関する入力は大歓迎です。

6
Jim

ストリームのコピーが高速

最初の例は単純に ストリームをコピーする そしてmoovアトムを再配置することです。この再配置により、ブラウザを介してビデオを視聴している視聴者など、完全にダウンロードされる前にビデオの再生を開始できます。

ffmpeg -i input.mp4 -codec copy -map 0 -movflags +faststart output.mp4

エンコーディングが遅い

2番目の例のように、エンコードには、入力の複雑さと期間、ffmpegとx264ビルドのコンパイル方法、ビルドの古さ(機能の欠如、改善、バグ修正)、CPU、使用するエンコーダー、およびエンコード設定。これらすべてを制御できるわけではありませんが、最新のビルドを使用していることを確認し、ニーズに合わせてエンコード設定を変更できます。

FFmpegを取得する

静的ビルドは使いやすく、ダウンロード、抽出、実行するだけです。 Linux、Windows、およびOS Xユーザー向けのオプションについては、 FFmpeg Download ページを参照してください。コンパイルすることもでき、いくつかのステップバイステップ FFmpegコンパイルガイド が利用可能です。

プリセットの使用

X264でエンコードする場合は、より高速なエンコードプリセットを使用できます。

ffmpeg -i in.wmv -codec:v libx264 -preset fast -movflags +faststart out.mp4

プリセットは、エンコード効率を決定するオプションのコレクションであるため、速度にも影響します。現在のプリセットは次のとおりです。ultrafastsuperfastveryfastfasterfastmediumslowslowerveryslowplacebo。デフォルトはmediumで、placeboは時間の無駄です。一般的な推奨事項は、忍耐力のある最も遅いプリセットを使用することです。詳細については、 FFmpegおよびx264エンコーディングガイド を参照してください。

-f mp4は不要であり、ffmpegのバージョンによってはh264がエンコーダ名として機能する場合があります。libx264を使用するのが一般的です。

5
llogan