FFmpeg」タグアーカイブ

FFmpegでボトムフィールドファーストのインターレース形式にエンコード

ボトムフィールドファーストでエンコード

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 1bff=1tff=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 OutputMpeg4 AVC (x264)に設定して、InterlacedのオプションをTop Field FirstBottom Field Firstに設定します。Avidemuxは内部でFFmpegを使ってエンコードしているらしいですが、カット編集とかする場合はFFmpegを直接使うより便利な場合もあるかと思います。

リンク

FFmpeg-users – Interlaced x264
http://www.ffmpeg-archive.org/Interlaced-x264-td4675482.html

Avidemux – Main Page
http://fixounet.free.fr/avidemux/

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オーディオに変換

$ ffmpeg -i input.wav -af "pan=stereo|c0=FL|c1=FR" stereo.wav

5.1chオーディオの動画ファイルを2chオーディオの動画ファイルに変換する場合は、例えば次のような感じで実行します

$ ffmpeg -i input.mkv -c:v copy -c:a pcm_s16le -af "pan=stereo|c0=FL|c1=FR" stereo.mkv

リンク

AudioChannelManipulation – FFmpeg
https://trac.ffmpeg.org/wiki/AudioChannelManipulation

UnityでScreenshotMovieを作成するスクリプト

Unityで作ったゲームのScreenshotMovieを作成できるスクリプト

ScreenshotMovie – Unify Community Wiki
http://wiki.unity3d.com/index.php/ScreenShotMovie

作成されるファイルはPNG形式の連番画像ファイルになるので、FFmpegや他の動画編集ソフト等で動画に変換してください。

FFmpegで動画ファイルに変換するコマンド例

$ ffmpeg -an -i screenshot.mp4 "shot %04.png"

リンク

ScreenshotMovie – Unify Community Wiki
http://wiki.unity3d.com/index.php/ScreenShotMovie

FFmpeg
http://ffmpeg.org/