FFmpegでYouTube向けにエンコード

FFmpegでYouTube向けにエンコードしたい場合は

$ ffmpeg -i input.avi -c:v libx264 -preset slow -crf 18 -c:a copy -pix_fmt yuv420p output.mkv

のようなコマンドでエンコードできます。

ポイントは-pix_fmt yuv420pの部分だと思います。-pix_fmt yuv420pのオプションを消してエンコードするとChroma subsamplingが4:4:4になるみたいです。ローカルPCでは正常に再生できますが、アップロードすると映像が乱れる場合があるようです。(YouTube以外でも動画アップロードに対応しているWebサービスでは-pix_fmt yuv420pのオプションを付けておいた方が良いみたいです。)

オプションについての簡単な説明

-c:v libx264は動画をx264でエンコードするという設定です。出力するファイルをoutput.mkvの代わりにoutput.mp4にする場合は、デフォルトでx264でエンコードの設定になるので省略できます。

-preset slowはエンコード速度に関する設定です。エンコードに時間を掛けてでも圧縮率を上げてファイルサイズを減らしたい場合はslow/slower/veryslowを使います。逆に少しでも短時間でエンコードを終わらせたい場合はmedium/fast/faster/veryfastを使います。

-crf 18の部分は動画のクオリティに関する部分になっています。画質を落としてでもファイルサイズを減らしたい場合は18より大きな値を設定します。逆に、ファイルサイズを増やして画質を上げたい場合は18より小さな値を設定します。

-c:a copyはオーディオについては再エンコードしないという設定です。AACで再エンコードしたい場合は-c:a aac -b:a 192kのような感じで設定します。(192kはオーディオのビットレートです。)

リンク

Encode/YouTube – FFmpeg
https://trac.ffmpeg.org/wiki/Encode/YouTube

関連記事

アニメーションGIFの作り方
0000.png, 0001.png, 0002.png, ...の連番PNGファイルからアニメーションGIFを作るコマンド ffmpeg編 $ ffmpeg -framerate 30 -i %04d.png output.gif convert編(ImageMagick) $ convert -delay 10 -loop 0 *.png output.gif ...

FFmpegで動画を連結するコマンド
1. 連結したい動画をテキストファイルに書き出します。 $ vi list.txt $ cat list.txt file '/path/to/file1.avi' file '/path/to/file2.avi' file '/path/to/file3.avi' 2. FFmpegを実行します。 $ ffmpeg -f concat -safe 0 -i list.txt...

FFmpegで5.1chオーディオを2chに変換
FFmpegを使って5.1chオーディオのファイルを2ch(ステレオ)に変換するコマンドのメモ down-mix ダウンミックスして2chオーディオに変換 $ ffmpeg -i input.wav -ac 2 stereo.wav FL/FRを抜き出す 「Front Left」「Front Right」のオーディオを抜き出して2chオーディオに変換 $ ff...

FFmpegでボトムフィールドファーストのインターレース形式にエンコード
ボトムフィールドファーストでエンコード FFmpegでBottom Field First(BFF)のInterlace形式のx264にエンコードする方法を調べてみました。 とりあえず自分の環境でうまくいったコマンドは次のような感じです。 $ ffmpeg -i input.avi -flags +ilme+ildct -top 0 -c:v libx264 -x264opts...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です