Quantcast
Channel: FFmpeg | ニコラボ
Viewing all articles
Browse latest Browse all 310

映像フィルタを当てる前後のデータを見える化する

$
0
0

ffmpeg には多くの映像フィルタと音声フィルタがあるが、その効果を調べるのに主観的な判断だけではなく、客観的な判断ができるように数値を映像に表示したり、ヒストグラムを表示したりすることで映像で差違を見える化する。null フィルタを別のフィルタに変更することでフィルタを当てた同士で比較できる。

ヒストグラムで YUV を比較

フィルタを当てる前後をヒストグラムで比較する

中心がオリジナルのグラフ。左がフィルタを当てたグラフ。右が差分で、黒い部分がフィルタを当てたグラフ、白い部分がオリジナルのグラフ
ffplay input -vf split[0][1];[0]pp,histogram,split[0a][0b];[1]null,histogram,split[1a][1b];[0b][1b]blend=c0_mode=difference[01];[0a][1a][01]hstack=3

ヒストグラムで比較


さらに動画を右に配置する

解像度 640×360 の動画を右に配置し、上が 0 識別子のフィルタを当てた動画、下が 1 識別子の動画。640×360 の動画でない場合は scale=640x360 を最初の split の前につなぐ
ffplay input -vf split[0][1];[0]pp,split[0a][0b];[0a]histogram=230:10,split[0c][0d];[1]null,split[1a][1b];[1a]histogram=230:10,split[1c][1d];[0c][1c]blend=c0_mode=difference[01];[0d][1d][01]hstack=3[l];[0b][1b]vstack[r];[l][r]hstack

さらに YUV の値を映像に表示する

ffplay input -vf split[0][1];[0]pp,split[0a][0b];[0a]histogram=230:10,split[0c][0d];[1]null,split[1a][1b];[1a]histogram=230:10,split[1c][1d];[0c][1c]blend=c0_mode=difference[01];[0d][1d][01]hstack=3[l];[0b]signalstats,drawtext=fontfile='C\://WINDOWS/Fonts/arial.ttf':textfile=signalstat_drawtext.txt:fontsize=20:borderw=1:bordercolor=white[0e];[1b]signalstats,drawtext=fontfile='C\://WINDOWS/Fonts/arial.ttf':textfile=signalstat_drawtext.txt:fontsize=20:borderw=1:bordercolor=white[1e];[0e][1e]vstack[r];[l][r]hstack

クリックして拡大


drawgraph で YUV のグラフを表示する

ffplay -f lavfi -i "movie=input,signalstats,drawgraph=m1=lavfi.signalstats.YAVG:fg1=0x808080:m2=lavfi.signalstats.UAVG:fg2=0x0000FF:m3=lavfi.signalstats.VAVG:fg3=0xFF0000:min=0:max=255:bg=white:slide=scroll:mode=bar,drawgrid=0:0:0:32,format=yuv420p"

drawgraph の表示例。Y が灰、U が青、V が赤


datascope で YUV の値を表示する

ffplay input -vf datascope=1280x720:0:0:0:0

datascope の出力サンプル

SSIM, PNSR で比較する

input1 に元の動画を、input2 に比較する動画を入力する
結果はコンソールに表示される
ffmpeg -i input1 -i input2 -filter_complex ssim -an -f null -
ffmpeg -i input1 -i input2 -filter_complex psnr -an -f null -

md5, sha256, CRC32 を調べる

結果はコンソールに表示される
ffmpeg -i input -f hash -hash md5 -
ffmpeg -i input -f hash hash sha256 -
ffmpeg -i input -f hash -hash CRC32 -

そのほかにも調べられる:FFmpeg Formats Documentation : hash

使用したフィルタ


Viewing all articles
Browse latest Browse all 310

Trending Articles