ffmpeg 4.3 から使える予定のフィルタ。映像の指定したピクセル内のピクセル中央値を返すのでマスクしてデノイズするのに使える。マスクはcolorkey、chromakey
フィルタで作れる。
ffmpeg でクロマキー合成
ffmpeg でクロマキー合成 その2
複数ファイルの中央値を返すのならxmedia
フィルタを使う。
基本コマンド
水平方向に10ピクセル、垂直方向に20ピクセルにすべてのチャンネルの中央値を返す。
ffmpeg -i input -vf median=radius=10:planes=15:radiusV=20:percentile=0.5 -c:a copy output
ffplay -i input -vf median=10:15:20:0.5
緑にcolorkey
フィルタを当てて緑以外をマスクして緑部分にmedian
フィルタを当てている。比較用にマスクしない例も併記。
ffplay -f lavfi -i rgbtestsrc,median=1:15:59
ffplay -f lavfi -i rgbtestsrc,split[v],colorkey=green:0.5[ov];[v]median=1:15:59[bv];[bv][ov]overlay=format=rgb



公式ドキュメント:FFmpeg Filters Documentation : median
オプション
半径オプションのピクセル数は入力した映像の縦横それぞれ4分の1引く1以下にする。
- radius[int]
フィルタを当てる横の半径
既定値:1
範囲:1 から 127 まで - planes[int]
フィルタを当てるチャンネル指定
詳しくは ffmpeg について | チャンネルの順番と注意点を参照
既定値:15
範囲:0 から 15 まで - radiusV[int]
フィルタを当てる縦の半径
既定値:0(0指定はradiusと同じ値)
範囲:0 から 127 まで - percentile[float]
百分位数の指定。0.5 なら中央値。0 なら最小値。1 なら最大値
既定値:0.5
範囲:0 から 1 まで