大きすぎる音は小さく、小さすぎる音は大きく聞き取りやすい音量に変えるdynaudnorm
フィルタの使い方。雑談などの声中心なら聞こえやすくなるので効果的で、急に音量が変わって聞き取りにくい音声を修正するのにも使える。
音量を調べるにはvolumedetect、ebur128、showwavespic
などのフィルタがある。
niconicoとffmpegのことを中心に書いてる
大きすぎる音は小さく、小さすぎる音は大きく聞き取りやすい音量に変えるdynaudnorm
フィルタの使い方。雑談などの声中心なら聞こえやすくなるので効果的で、急に音量が変わって聞き取りにくい音声を修正するのにも使える。
音量を調べるにはvolumedetect、ebur128、showwavespic
などのフィルタがある。
reverse, areverse
フィルタを使って逆再生にエンコードする。長時間逆再生にすると大量にメモリを消費するのであらかじめ時間を区切った方が処理が速く済む。
30000/1001fpsのインターレースの動画からアニメの24000/1001fpsのプログレッシブ動画にするためにインターレースを解除、逆テレシネする。フレームを間引くにはいくつかの方法があるので目的に合わせてフィルタを使う。
ポイントはフレームを間引く必要があるかどうかと、テロップなどの片フィールド補間がいるかどうか。フレーム間引きするにはdecimate
を併用し、pullup
、detelecine
には必要ない。
片フィールドを補間した 60pはw3fdif
だけ使うのが手軽だが、他にもyadif
とbwdif
、nnedi
、estdif
もBob化できる。yadif
、bwdif
、estdif
の第1引数を1にする必要があるのは片フィールド補間しBob化する場合である。
逆テレシネするならfieldmatch
フィルタを使って、逆テレシネ漏れにestdif
フィルタの併用がよさそう。毎フレームのフィールドが動く映像は逆テレシネはせずにbwdif
フィルタで片フィールド補間するか、30pにするのが無難にきれいになる。
片フィールドを補間しない場合にnnedi
は速度の割にはあまり品質はよくないかもしれない。
インターレース解除、または逆テレシネとリサイズを併用する場合は、インターレース解除、または逆テレシネした後にリサイズする。
yadif,scale=1280:-2
フレームを間引くのならインターレース解除した後に行うことでリサイズするフレーム数を減らせて処理がはやくなる。
yadif,decimate,scale=1280:-2
リサイズする scale
Zライブラリを使ったリサイズフィルタ zscale
24pの処理速度比較
8 < 7 < 6 < 5 << 4 << 3 < 2 << 1
-r
で固定フレームにできる)(速度を重視)ffmpeg には標準でロゴを消すフィルタがあるが、以前紹介した特定の場所にだけフィルタを当てる方法と、ロゴ消しに適したロゴデータの作り方を交えてロゴをきれいに消す方法。
ffmpeg でロゴを消すフィルタと言えば、removelogo
とdelogo
があるが、ロゴデータを元にロゴを消すのがremovelogo
で、座標を指定して周りの色でブレンドするのがdelogo
である。
集計期間は週間のニコ生統計の6月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。
明暗の度合いでもマスクできるのでこれを応用して一つの映像に複数のフィルタを使い分ける方法。特定色ならcolorkey
フィルタを使ってマスクすることもできる。一般的には映像をシャープにするほど容量は大きく、ぼかすほど容量は小さくなるので、シャープとぼかしを使い分けて高画質配信を目指す。
colorkey の使い方:ffmpeg でクロマキー合成
なぜぼかしも併用するかと言えばビットレートの節約になるのも正しいが、ニコ生のようなビットレート制限が厳しいところでは、低解像度で暗くて見えにくい部分にビットレートをたくさん割り当てる必要はないからである。
動画編集ツールによくあるヒストグラムを表示するhistogram
フィルタの使い方。以前あったcolor、waveformオプションは廃止になり個別のフィルタとして独立した。
2チャンネルの値を2次元で表示する vectorscope
ffmpeg で YUV, RGB波形を表示する waveform
音量をリアルタイムでメーター表示する ffmpeg のshowvolume
のフィルタの使い方。出力フォーマットは RGBA。条件をつければ指定 dB の範囲に色を変えられる。
映像をメーターに差し替える。
ffmpeg -i input -filter_complex showvolume=r=25:b=1:w=400:h=20:t=1:v=1:s=0 -c:a copy output
ffplay -f lavfi -i amovie=input,showvolume
2チャンネルのメーターだけを再生する。
ffplay -f lavfi "amovie=input,asplit[a][out1];[a]showvolume=b=4:w=720:h=68[out0]"
音声データを読み込みサンプリング波形を一枚画像で出力するshowwavespic
の使い方。音声のどの時間帯でどのくらいの音量があるのかがよくわかる。
読み込み開始時点や終了時点を変更する -ss, -t, -to などはエラーになるので使えない。出力フォーマットはグレースケール RGBA になるのでoverlay
フィルタなどで別の映像と合わせるのにも使える。
リアルタイムに同様の波形を調べるにはshowwaves
フィルタを使う。
音声波形を表示する showspectrum, showwaves の使い方
既定値からチャンネル別に表示。
ffmpeg -i input -filter_complex "showwavespic=s=600x240:split_channels=1:colors=red|green:scale=0" showwavespic.png
公式ドキュメント:FFmpeg Filters Documentation : showwavespic