チャンネルを分離して個別に出力できる。対応チャンネルはYUV, RGB, アルファである。出力フォーマットはGRAY。
アルファチャンネルをグレーで出力する alphaextract
基本コマンド
YUVをそれぞれの1チャンネルを出力する例。
ffmpeg -i input -filter_complex "extractplanes=y+u+v[y][u][v]" -map [y] -c:v ffv1 y.mkv -map [u] -c:v ffv1 u.mkv -map [v] -vcodec ffv1 v.mkv
Yだけの1チャンネルを出力する例。
ffmpeg -i input -filter_complex "extractplanes=y" -c:v ffv1 y.mkv
Yの色に彩度を128で固定してlutyuv
フィルタでグレースケール出力する。
ffmpeg -i input -filter_complex "lutyuv=val:128:128" y.mp4
420サブサンプリングのとき、Yを上に、Uを左下に、Vを右下に配置して再生する。
ffplay -i input -vf "extractplanes=y+u+v[y][u][v];[u][v]hstack[uv];[y][uv]vstack"
ffplay input -vf “extractplanes=y+u+v,xstack=3:0_0|0_h0|w1_h0"
420サブサンプリングのとき、Yを左に、Uを右上に、Vを右下に配置して再生する。
ffplay -i input -vf "extractplanes=y+u+v[y][u][v];[u][v]vstack[uv];[y][uv]hstack"
ffplay -i input -vf "extractplanes=y+u+v,xstack=3:0_0|w0_0|w0_h1"
RGBを縦に並べて再生する。
ffplay -i input -vf "extractplanes=r+g+b,vstack=3"
ffplay -i input -vf "extractplanes=r+g+b[r][g][b];[r][g][b]vstack=3"
以下のようなエラーが出た場合は、extractplanes
フィルタの前にformat
フィルタでyuv420pなどと指定して改めてフォーマットを宣言する。
The following filters could not choose their formats: Parsed_extractplanes_2 Consider inserting the (a)format filter near their input or output. Error opening filters!
公式ドキュメント:FFmpeg Filters Documentation : extractplanes
分離したチャンネルを合わせるには
各映像チャンネルを結合する mergeplanes
LUTを手軽に入れ替えられるlut2、tlut2、swapuv