位相をベクタスコープで映像化するavectorscope
フィルタの使い方。表示する色の設定とフェードの色設定、リサジュー図形での描写が可能。出力フォーマットが rgba になるので背景部分が透過してoverlay
フィルタを使ってかぶせることも容易にできる。
2チャンネルの値を2次元で表示する vectorscope
histogram
フィルタに含まれていたcolorオプションが個別のフィルタになった。出力フォーマットが GBRP、YUVA になるので背景部分が透過してoverlay
フィルタを使ってかぶせることも容易にできる。透過させて表示するなら入力フォーマットにアルファチャンネルをあらかじめつけておく。
前回書いた記事:ffmpeg でヒストグラムを表示する
基本コマンド
ffmpeg -i input -vf vectorscope -c:a copy output
ffplay -i input -vf vectorscope=m=1:x=1:y=2:i=.04:e=0

ffmpeg で YUV, RGB波形を表示する waveform
histogram
フィルタに含まれていたwaveformオプションが個別のフィルタになった。高ビット深度に対応。
前回書いた記事:ffmpeg でヒストグラムを表示する
2015年8月のニコ生統計
集計期間は週間のニコ生統計の8月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。
各映像チャンネルを分離する extractplanes
チャンネルを分離して個別に出力できる。対応チャンネルは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
各映像チャンネルを結合する mergeplanes
分離したチャンネルを合わせたり入れ替えたり、ピクセルフォーマットを変えたりできる。またアルファチャンネルのない映像に、他のチャンネルをアルファチャンネルに複製することもできる。チャンネルを入れ換えるだけならlut2
フィルタでもでき、アルファチャンネルの追加ならalphamerge
フィルタでもできる。
LUTを手軽に入れ替えられるlut2、tlut2、swapuv
別ファイルの情報から元映像を透過させる alphamerge
音声の周波数を映像化する showfreqs
Y軸に振幅、X軸に周波数に変換するshowfreqs
フィルタの使い方。出力フォーマットはRGBAの可変フレームレート。フレームレートが指定できるようになった。
基本コマンド
ffplay -f lavfi -i amovie=input,showfreqs=s=512x288:mode=bar:ascale=log:fscale=lin:win_size=2048:win_func=hanning:overlap=1:averaging=1:colors=white

メタデータを映像化する drawgraph, adrawgraph
映像の YUV、彩度、色相を映像にオーバーレイしたり、コンソールに表示したり出来るdrawgraph
フィルタと、音声の周波数や音量などを映像にオーバーレイしたり、コンソールに表示したり出来るadrawgraph
フィルタの使い方。出力フォーマットは RGBA で色指定の AA の値を小さくすることでオーバーレイしたときに背景が映る。
メタデータをコンソールに表示する metadata, ametadata
基本コマンド
signalstats
フィルタを使って YUV のデータを表示している。
音声を位相メーターの映像に変換する aphasemeter
フィルタの挙動について:
ffmpeg: aphasemeter, meaning of measurement – Super User
audio – Calculate Phase angle between two signals i.e. digital Phase meter – Signal Processing Stack Exchange
基本コマンド
ffplay -f lavfi -i "amovie=input,aphasemeter=25:800x400:2:7:1:none:1[out0][out1]"
基本は上から下に流れるので、transpose
フィルタを使って左から右に流すコマンド。
ffplay -f lavfi -i "amovie=input,aphasemeter=25:400x800:2:7:1:yellow:1[out1],transpose=2[out0]"
ffmpeg 2.8 の気になる新機能とは
ffmpeg 2.8 が2015年9月9日リリースされた。それに伴い ffmpeg 2.7 から新たに追加されたフィルタやエンコーダーやデコーダーなど気になる新機能についてのまとめ。
チェンジログ:git.videolan.org Git – ffmpeg.git/blob – Changelog
広く恩恵を受けるのは「Intel QSV-accelerated MPEG-2 video」の部分で MPEG-2 video を libx264 でエンコードしている人にはエンコード速度の向上が図れる。ただしこれが有効になっている Windows バイナリが一般公開されていないのでMaster of the Dark Arts-ニコニコミュニティで配布している Full-Auto-modified-v2 を使うと手軽に Windows用の ffmpeg を作ることが出来る。
2.7 から新たに追加されたフィルタの気になる部分については随時ブログで更新していたので該当記事を参照。
- colorkey video filter
ffmpeg でクロマキー合成 - ssim filter
2つの映像の画質評価をする ssim - showvolume filter
リアルタイムでVUメーターを表示する showvolume - Dynamic Audio Normalizer as dynaudnorm filter
ffmpeg で聞き取りやすい音量に変える - Reverse video and areverse audio filter
映像と音声を逆再生にエンコードする - acrossfade audio filter
入力した2つの音声にクロスフェードをかける acrossfade の使い方 - hstack and vstack filter
Windows の ffmpeg で生放送する方法 : stack
更新予定のフィルタ
- aphasemeter filter
- showfreqs filter
- adrawgraph audio and drawgraph video filter
- erosion, dilation, deflate and inflate video filters
- vectorscope filter
- waveform filter