fieldmatch
フィルタで逆テレシネしてプログレッシブフレームを作り、プログレッシブ化に漏れたフレームを改めてインターレース解除フィルタでプログレッシブ化しdecimate
フィルタで間引けば24p化することができる。テレシネではなくインターレースのときは逆テレシネしないので、あとのインターレース解除フィルタでプログレッシブ化できる。ポストプロセスppsrcでノイズ除去、または明るさ、コントラストの調整することでオリジナルフィールドを劣化させず逆テレシネすることもできる。
単純な逆テレシネフィルタdetelecine
テレシネコンテンツを逆テレシネするdetelecine
フィルタの使い方。途中にテレシネでない映像が含まれていても検証素材が多くないが周期は変わらないかもしれない。つまり本編が分かれていも逆テレシネできるが、途中のテレシネではない映像にはインターレース櫛が残る。
エッジ傾斜を考慮したインターレース解除フィルタestdif
estdifは”Edge Slope Tracing Deinterlacing Filter”の略語。斜めの輪郭線が滑らかになるので見た目が良くなる。bwdif
フィルタよりもボケ気味なのでサイズは小さくなりやすい。
基本コマンド
ffmpeg input -vf estdif=mode=0:parity=-1:deint=0 -c:a copy output
ffplay input -vf estdif=0:-1:0
x264のcrfエンコードの結果からほかのcrf値のサイズを推測する
h.264 – ffmpeg – How to estimate CRF for h264 video target size – Stack Overflowより。
-crf 18 -preset slowでエンコードした映像のサイズ、平均ビットレートからほかの-crfの値のサイズ、平均ビットレートを推測する。例ではcrf1増減につき12.85%サイズが変化すると仮定して目標のサイズからのcrfを推測する。crf18で3500MBから2000MBのcrfを推測するには18+LOG(2000/3500)/LOG(1-0.1285)を計算する。計算は表計算ソフトに入力する。
経験上ではcrf1で10%程度は変化すると思っているので、この12.85%を適宜変更する。最初のcrf18のエンコードに時間がかかると思ったら、crf23でエンコードして同様の計算式に入れてもよい。
表計算ソフトコピペ用。
=18+LOG(目標サイズ/crf18サイズ)/LOG(1-0.1285)
=23+LOG(目標サイズ/crf23サイズ)/LOG(1-0.1285)
ffmpeg 5.1リリース
2022年9月25日にffmpeg 5.1.2がリリースされた。アップデート内容はフォーマット関係など修正ばかりで新しいフィルタは入ってない。
Update for 5.1.2 · FFmpeg/FFmpeg@eacfcba
2022年9月1日にffmpeg 5.1.1がリリースされた。アップデート内容はフォーマット関係など修正ばかりで新しいフィルタは入ってない。
Update for 5.1.1 · FFmpeg/FFmpeg@1bad30d
2022年7月23日にffmpeg 5.1 Riemann(ベルンハルト・リーマン – Wikipedia)がリリースされた。今回のリリースはメジャーアップデートとなり、4.4以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやエンコーダ、デコーダ等の新機能が全て取り込まれた。
気になる新機能はipfs/ipnsプロトコル対応。映像の特性を調べるSITI
フィルタ、任意の座標にフィルタを当てるfeedback
フィルタ。ffprobeの出力オプションの-oでリダイレクトせずに指定ファイル形式で保存できるように。リップシンク確認動画を作れるavsynctest
テストソース、色の表示確認動画を作れるcolorchart
テストソースなどがある。
チェンジログにない部分ではLittleCMS 2によるICC Profile対応とiccdetect
、iccgen
フィルタ。AVIF muxer対応して.avif形式で出力と、JPEG XL対応してJPEG XLのエンコード・デコード対応。-vsyncが廃止予定に変わり同じオプション指定の-fps_modeと、複数のタイムスタンプを同期させる-isyncオプションが追加されている。
.avif形式で出力。上が静止画像、下がアニメーション画像:
ffmpeg -i image.png -c:v libsvtav1 -still-picture 1 image.avif ffmpeg -i video.mp4 -c:v libsvtav1 -frames:v 24 image.avif
エンコーダ別の設定は以下を参照。
【ffmpeg】動画から特定フレームを画像で出力する方法 – avifを作る
前回記事:ffmpeg 5.0リリース
ビットストリームで加工するnoise
任意の場所の映像や音声をコンテナを損傷することなくドロップさせたり、パケットにノイズをのせたりできるnoise
ビットストリームフィルタの使い方。
ピクチャーをインターリーブ、デインターリーブするil
il
フィルタの使い方。似たフィルタにフレームをインターリーブするinterleave
フィルタと、フレーム間をインターリーブするtinterlace
フィルタがある。
フレームレートを変更するfps
任意のフレームレートに変換するfps
フィルタの使い方。整数ではない小数点以下のタイムスタンプ処理の丸め方も指定できる。
マスクに応じてぼかすvarblur
マスクのグレースケールに応じてぼかす範囲を指定するvarblur
(Apply variable blur)フィルタの使い方。マスクをつくる方法はgeq
フィルタで任意の図形をつくる、lut
フィルタなどで映像を加工する、untile
フィルタで分割した場所を指定するなどがある。2つのビデオストリームが必要だがそれぞれ同じ解像度出なければならない。タイムライン編集に対応。
フレーム内の一部分にフィルタを当てるfeedback
ffmpeg 5.1から使える予定のフィルタ。指定した矩形にフィルタを当てるfeedback
フィルタの使い方。縦x横で分割できる範囲ならuntile、select、interleave、tile
フィルタの併用でも同じことができ、ぼかすだけならvarblur
フィルタでもできる。座標を指定して周りの色でブレンドするdelogo
フィルタもある。