出力フォーマットは BGRA。アルファチャンネルは透過しない。
基本コマンド
緑を保持して他の色をグレーにする。
ffmpeg -i input -vf colorhold=color=green:similarity=0.5:blend=0 -vframes 1 output.jpg
ffplay -i input -vf colorhold=green:0.5:0

各チャンネルを左から並べる。
ffmpeg -i input -vf colorhold=green:0.5:0,extractplanes=r+g+b,hstack=3 -vframes 1 output.jpg
オリジナルとRGB各チャンネルを2×2で並べる。左上から右に向かってオリジナル、R、G、Bの順番。
ffmpeg -i input -vf "split[ori],colorhold=green:0.5:0,extractplanes=r+g+b,[ori]xstack=4:0_0|w0_0|0_h0|w0_h0" -vframes 1 output.jpg
各映像チャンネルを分離する extractplanes
解像度が一致しなくても映像を並べられる xstack
公式ドキュメント:FFmpeg Filters Documentation : colorhold
オプション
同じオプション設定にcolorkey
フィルタがあり、こちらは指定した色が透過する。
- color[color]
指定した色を保持し、その色以外はグレーになる。16進数形式か、色名を指定
既定値:”black” - similarity[float]
一致の範囲指定。0.01 は完全一致
既定値:0.01
範囲:0.01 から 1 まで - blend[float]
似た色の影響具合、0 は指定した色だけで大きくするほど似た色も少しずつグレーになる
既定値:0
範囲:0 から 1 まで