8ビットなら255を0に反転させるnegate
フィルタの使い方。lut
フィルタでも同様のことができる。タイムライン編集と高ビット深度に対応。
オーディオフレームサイズを指定するasetnsamples
通常はコーデック毎やエンコーダ毎にサンプル数が異なるがこれを任意の値に指定できるasetnsamples
フィルタの使い方。映像のフレーム毎の内容を音声と同期させるために使う。
フィルタ内で分割するsegment、asegment
ffmpeg 4.5から使える予定のフィルタ。いままではselect、aselect
フィルタで複数の区間をフィルタ内で分割できたのがより直感的に分割できるようになった。タイムライン編集が使えないフィルタを使ったり、エンコードパラメータを複数使い分けて1つのファイルに戻すなどに使う。
特定の映像フレームや音声サンプルを出力するselect, aselect
Tがあればタイムライン編集に対応している。
ffmpeg -filters : gist.github.com
HDRにかかわるmkvmergeの設定
VP9やAV1でエンコードしたときにつけるHDRメタデータをmkvmergeでつける。指定する値は元の映像と同じ値を指定する。libx265は-x265-paramsから、libsvtav1は-svtav1-paramsから直接指定できる。
フィールドオーダーを変更するfieldorder
フィールドオーダーを書き換えて順番を入れ替えるfieldorder
フィルタの使い方。フィールドオーダーの明示がなくフラグを立てるのはsetfield
フィルタ。
クロミナンスノイズ低減フィルタchromanr
色彩のデノイズを行うchromanr
フィルタの使い方。軽く当てると明るさ成分には影響なく、あまり色彩を失わずにデノイズできる。変化度合いのしきい値が指定できるので調整しやすい。タイムライン編集に対応。フレーム間の色彩デノイズ、いわゆるちらつき除去はhqdn3d
フィルタを使う。
ffmpeg 4.4 リリース
2021年10月25日に4.4.1がリリースされた。アップデート内容はセキュリティ関係など修正ばかりで新しいフィルタは入ってない。
git.videolan.org Git – ffmpeg.git/commitdiff
git.videolan.org Git – ffmpeg.git/shortlog : n4.4.1
次のバージョンに追加予定の内容。
git.videolan.org Git – ffmpeg.git/blob – Changelog
4.4.1には入っていないが「swscale slice threading」はスレッド数の多いPCでのリサイズにおいてCPU使用率の大幅な向上が見られる。
およそ10か月ぶりの更新で2021年4月9日にffmpeg 4.4 “Rao“がリリースされた。今回のリリースはメジャーアップデートとなり、セキュリティ対応や4.3以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやデコーダの新機能が全て取り込まれた。
2つの映像の差の絶対値の合計平均を調べるmsad
ffmpeg 4.4から使える予定のフィルタ。2つの映像は同じ解像度、ピクセルフォーマットでなければならない。メタデータに出力できるのでffprobe連携しやすい。
ffprobe の使い方
framesyncに対応しているので片方の出力が終わったら終了するようにできる。
2ファイル入力するフィルタの挙動設定 framesync
基本コマンド
オプション設定はなし。出力値は0から1までの小数。変化が少ないほど0に近づく。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex "[0:v]settb=1/AVTB,setpts=PTS-STARTPTS[0v];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[1v];[0v][1v]scale2ref=flags=bicubic,msad=shortest=1:repeatlast=0" -an -f null -
ffmpeg 5.1以降はts_sync_mode対応したのでsettb=1/AVTB,setpts=PTS-STARTPTS
が不要になった。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex "scale2ref=flags=bicubic,msad=shortest=1:repeatlast=0:ts_sync_mode=1" -an -f null -
公式ドキュメント:FFmpeg Filters Documentation : msad
メタデータ出力内容。
lavfi.msad.msad.Y lavfi.msad.msad.U lavfi.msad.msad.V lavfi.msad.msad_avg
ffprobe連携例。出力時間は-read_intervalsで指定。
ffprobe -f lavfi -i movie=enc.mp4,settb=1/AVTB,setpts=PTS-STARTPTS[0];movie=orig.mp4,settb=1/AVTB,setpts=PTS-STARTPTS[1];[0][1]scale2ref=flags=bicubic,msad -show_entries packet_tags=lavfi.msad.msad_avg -read_intervals "%1" > msad_avg.txt
2つの映像がどれだけ同じかを調べるidentity
ffmpeg 4.4から使える予定のフィルタ。2つの映像は同じ解像度、ピクセルフォーマットでなければならない。メタデータに出力できるのでffprobe連携しやすい。
ffprobe の使い方
framesyncに対応しているので片方の出力が終わったら終了するようにできる。
2ファイル入力するフィルタの挙動設定 framesync
基本コマンド
オプション設定はなし。出力値は0から1までの小数。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex "[0:v]settb=1/AVTB,setpts=PTS-STARTPTS[0v];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[1v];[0v][1v]scale2ref=flags=bicubic,identity=shortest=1:repeatlast=0" -an -f null -
ffmpeg 5.1以降はts_sync_mode対応したのでsettb=1/AVTB,setpts=PTS-STARTPTS
が不要になった。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex "scale2ref=flags=bicubic,identity=shortest=1:repeatlast=0:ts_sync_mode=1" -an -f null -
公式ドキュメント:FFmpeg Filters Documentation : identity
メタデータ出力内容。
- lavfi.identity.identity.Y
- lavfi.identity.identity.U
- lavfi.identity.identity.V
- lavfi.identity.identity_avg
ffprobe連携例。出力時間は-read_intervalsで指定。
ffprobe -f lavfi -i movie=enc.mp4,settb=1/AVTB,setpts=PTS-STARTPTS[0];movie=orig.mp4,settb=1/AVTB,setpts=PTS-STARTPTS[1];[0][1]scale2ref=flags=bicubic,identity -show_entries packet_tags=lavfi.identity.identity_avg -read_intervals "%1" > identity_avg.txt
千円HDMIキャプチャ、Y&H HDMIキャプチャカード
千円で有名になったHDMIキャプチャカードだが、複数の販売元では送料込みで700円を割り込んでいる。公式画像では「Shenzhen Yonghui Fashion Co., Ltd」の配送になるが、今回購入したのは「XBOW」から。「今すぐ買う」のボタンの下から選択できる。最初の頃に言われていた音声がおかしい問題は解決されて1280×720の60fpsのMJPGで取り込めて、手軽なHDMI出力の画面表示に使える。