マスクして2入力を合わせる maskedmerge

3入力目をマスクにして、1入力目の映像と2入力目の映像をマスクに合わせて出力する。マスクをどの程度指定するかで1入力目と2入力目の割合を指定できる。アルファチャンネルを追加するalphamergeフィルタと負荷は変わらない。

別ファイルの情報から元映像を透過させる alphamerge

マスクの各チャンネル(YUVA、RGBAなど)の値から1、2入力に対応したチャンネルがブレンド、またはスルーされ、スルーされるときは1入力目がそのまま出力される。3入力目の各チャンネルのピクセル値が0ならば1入力目を、255(8bit)ならば2入力目が出力させる。既定値は1、2入力がブレンドされる。アルファチャンネルは0が完全透過になる。

マスクの指定には別ファイルを使う方法と、フィルタを当てて各チャンネルを調整する方法とがある。各チャンネルを調整にはlutフィルタが使いやすい。別ファイルを使う場合にはモノクロ映像を使うことでその部分にだけフィルタを当てるのが手軽になる。

Windows の ffmpeg で生放送する方法 : LUT(ルックアップテーブル)

Continue reading “マスクして2入力を合わせる maskedmerge”

ffmpeg でクロマキー合成 その2

chromakeyフィルタは指定した色の部分が透過した YUVA で出力し透過した部分にオーバーレイして別の映像を映すのに使う。バージョンは3.0 以降から使える。

RGBA で処理するcolorkeyはこちら:ffmpeg でクロマキー合成

基本コマンド

colorkeyと基本的には同じ。
ffmpeg -i input1 -i input2 -filter_complex [1:v]chromakey=red:.03:.1[1v];[0:v][1v]overlay output
ffmpeg -i input1 -i input2 -filter_complex [1:v]chromakey=0xff0000:.03:.1[1v];[0:v][1v]overlay output

公式ドキュメント:FFmpeg Filters Documentation : chromakey

Continue reading “ffmpeg でクロマキー合成 その2”

音声をベクトルスコープで表示する avectorscope

位相をベクタスコープで映像化するavectorscopeフィルタの使い方。表示する色の設定とフェードの色設定、リサジュー図形での描写が可能。出力フォーマットが rgba になるので背景部分が透過してoverlayフィルタを使ってかぶせることも容易にできる。

音声を位相メーターの映像に変換する aphasemeter

Continue reading “音声をベクトルスコープで表示する avectorscope”

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

vectorscope の表示例

公式ドキュメント:FFmpeg Filters Documentation : vectorscope

Continue reading “2チャンネルの値を2次元で表示する vectorscope”

ffmpeg で YUV, RGB波形を表示する waveform

histogramフィルタに含まれていたwaveformオプションが個別のフィルタになった。高ビット深度に対応。

前回書いた記事:ffmpeg でヒストグラムを表示する

Continue reading “ffmpeg で YUV, RGB波形を表示する waveform”

2015年8月のニコ生統計

集計期間は週間のニコ生統計の8月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。

Continue reading “2015年8月のニコ生統計”

各映像チャンネルを分離する 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"

解像度が一致しなくても映像を並べられる 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

各映像チャンネルを結合する mergeplanes

分離したチャンネルを合わせたり入れ替えたり、ピクセルフォーマットを変えたりできる。またアルファチャンネルのない映像に、他のチャンネルをアルファチャンネルに複製することもできる。チャンネルを入れ換えるだけならlut2フィルタでもでき、アルファチャンネルの追加ならalphamergeフィルタでもできる。

LUTを手軽に入れ替えられるlut2、tlut2、swapuv
別ファイルの情報から元映像を透過させる alphamerge

Continue reading “各映像チャンネルを結合する mergeplanes”

音声の周波数を映像化する 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

AAC 48.0 KHz 125Kbps の音声

Continue reading “音声の周波数を映像化する showfreqs”

メタデータを映像化する drawgraph, adrawgraph

映像の YUV、彩度、色相を映像にオーバーレイしたり、コンソールに表示したり出来るdrawgraphフィルタと、音声の周波数や音量などを映像にオーバーレイしたり、コンソールに表示したり出来るadrawgraphフィルタの使い方。出力フォーマットは RGBA で色指定の AA の値を小さくすることでオーバーレイしたときに背景が映る。

メタデータをコンソールに表示する metadata, ametadata

基本コマンド

signalstatsフィルタを使って YUV のデータを表示している。

YUV のデータを数値で表示する signalstats

Continue reading “メタデータを映像化する drawgraph, adrawgraph”