ボトムフィールドファーストでエンコード
FFmpegでBottom Field First(BFF)のInterlace形式のx264にエンコードする方法を調べてみました。
とりあえず自分の環境でうまくいったコマンドは次のような感じです。
$ ffmpeg -i input.avi -flags +ilme+ildct -top 0 -c:v libx264 -x264opts "interlaced=1:bff=1" -c:a copy output.mp4
-flags +ilme+ildct -top 0
の設定を追加するとInterlaceでエンコードはできているようなのですが、Top Field First(TFF)になってしまうため-x264opts "interlaced=1:bff=1"
も追加してみました。
+ilme+ildct
のあたりも含めて、よく分かっていませんので、うまくいかない場合はいろいろ試してみてください。
トップフィールドファーストでエンコード
ちなみに、トップフィールドファーストでエンコードしたい場合は-top 0
を-top 1
にbff=1
をtff=1
に変えるとエンコードできます。
$ ffmpeg -i input.avi -flags +ilme+ildct -top 1 -c:v libx264 -x264opts "interlaced=1:tff=1" -c:a copy output.mp4
Avidemux
GUIで操作したい場合はAvidemuxを使うのも便利です。
Video Output
をMpeg4 AVC (x264)
に設定して、Interlaced
のオプションをTop Field First
かBottom Field First
に設定します。Avidemuxは内部でFFmpegを使ってエンコードしているらしいですが、カット編集とかする場合はFFmpegを直接使うより便利な場合もあるかと思います。
リンク
FFmpeg-users – Interlaced x264http://www.ffmpeg-archive.org/Interlaced-x264-td4675482.html
Avidemux – Main Page
http://fixounet.free.fr/avidemux/
関連記事
FFmpegで動画から静止画像を出力する方法
FFmpegで動画ファイルから静止画像を出力したい場合は、次のようなコマンドを実行します。
$ ffmpeg -an -i video.mp4 %04d.png
0001.png、0002.png、0003.png、...のような連番ファイルが出力されます。
一部のみ抜き出したい場合は-ssオプションで開始時刻を、-tオプションで長さを指定します。
$ ffmpeg -a...
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で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...