fspp
(fast and simple postprocessing)とは前回のpp
に続くポストプロセッシングフィルタである。pp
よりもオプションが簡素なので使いやすい。
基本コマンド
ffmpeg -i input -vf fspp=4:0:0 output
ffplay -i input -vf fspp=4:0:0
公式ドキュメント:FFmpeg Filters Documentation : fspp
公式wiki:Postprocessing – FFmpeg
niconicoとffmpegのことを中心に書いてる
fspp
(fast and simple postprocessing)とは前回のpp
に続くポストプロセッシングフィルタである。pp
よりもオプションが簡素なので使いやすい。
ffmpeg -i input -vf fspp=4:0:0 output
ffplay -i input -vf fspp=4:0:0
公式ドキュメント:FFmpeg Filters Documentation : fspp
公式wiki:Postprocessing – FFmpeg
pp
(postprocessing)フィルタとは、デコード段階でフィルタを当てるフィルタを意味するが、フィルタチェーンでのpp
の位置によってフィルタが当たる順番も変わる。用途に合わせてたくさん種類があるので使いこなすのは難しい。ビルドオプションに--enable-gpl
が付いてないと使えない。
同様のフィルタにfspp
,pp7
,spp
,uspp
があるが、順番に負荷が大きくなりfspp
以降は負荷を考えると実用性は低い。
ffmpeg -i input -vf pp=de output
ffplay -i input -vf pp=de
公式ドキュメント:FFmpeg Filters Documentation : pp
公式wiki:Postprocessing – FFmpeg
手軽に RGB を明るくしたり、暗くしたり、コントラストを上げ下げできるcolorlevels
フィルタの使い方。RGB を操作するフィルタにcurves
やselectivecolor
、colorbalance
などがある。
既定値では変化はない
ffmpeg -i img -vf colorlevels output
ffplay -i img -vf colorlevels
映像や画像のCLUT(カラールックアップテーブル、カラーラットとも言われる)から色を置換するhaldclut
フィルタの使い方。CLUTは一般に配布されているものを使うことができるが、解像度を所定のサイズにする必要がある。
「RawTherapee Film Simulation Collection」の項目でCLUTをたくさん配布している。
Film Simulation – RawPedia : archive.org
フレーム毎に黒フレームを調べるblackframe
フィルタの使い方。輝度の値からどれだけ黒いかの設定があるのでシーンチェンジを調べるのに使える。blackdetect
フィルタよりも設定方法が分かりやすい。
コンソールの表示されるのでテキストにリダイレクトした方が見やすい。
ffmpeg -i input -vf blackframe=98:32 -f null -
ffmpeg -i input -vf blackframe=98:32 -f null - > blackframe.txt 2>&1
ログの出力例。
frame:1170 pblack:99 pts:3513510 t:39.039000 type:I last_keyframe:1170
黒フレーム区間を調べるblackdetect
フィルタの使い方。輝度の値からどれだけ黒いかの設定があるのでシーンチェンジを調べるのに使える。
輝度と彩度の変化を元に範囲を指定してぼかすsab
(Shape Adaptive Blur)フィルタの使い方。
ffmpeg -i input -vf sab=1.0:1.0:1.0:-0.9:-0.9:-0.9 output
ffplay -i input -vf sab=1.0:1.0:1.0:-0.9:-0.9:-0.9
公式ドキュメント:FFmpeg Filters Documentation : sab
映像フレームの輝度チャンネルから黒枠を検出して黒枠以外の座標をコンソール上に表示する。crop
とdrawbox
のコマンドも表示する。
ffplay input -vf bbox=16
出力例
n:0 pts:0 pts_time:0 x1:0 x2:1279 y1:78 y2:641 w:1280 h:564 crop=1280:564:0:78 drawbox=0:78:1280:564
公式ドキュメント:FFmpeg Filters Documentation : bbox
min_val[int]
黒枠ではないと検出する輝度チャンネルの最小の値
引数が一つしか無いのでそのまま数値指定してもよい
既定値:16
範囲:0 から 254 まで
各チャンネルの変化具合と平均化するフレーム数の指定により簡易のモーションブラーを当てることができるatadenoise
(Adaptive Temporal Averaging Denoiser )フィルタの使い方。設定値を 0 にしてもすべてのチャンネルに影響を与えるので色味の変化が大きいと軽くフィルタを当てても変化が大きい。フレーム間で平均化するので3次元デノイズとも言える。タイムライン編集に対応。
ffmpeg -i input -vf atadenoise=0a=.02:0b=.04:1a=.02:1b=.04:2a=.02:2b=.04:s=33:p=7 output
ffmpeg -i input -vf atadenoise=.02:.04:.02:.04:.02:.04:33:7 output
ffplay -i input -vf atadenoise=.02:.04:.02:.04:.02:.04:33:7
ffmpeg でエッジ検出するフィルタにedgedetect
とconvolution
、sobel, prewitt
などがある。これらのフィルタを使ってエッジ領域を拡大しグレースケールのマスクとすることでエッジ部分に特定のフィルタを当てないようにすることができる。