チャンネルを分離して個別に出力できる。対応チャンネルは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"

解像度が一致しなくても映像を並べられる xstack

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)