音量を脈打つように上げ下げできる apulsator

apulsatorはオートパンやトレモロの中間的なフィルタである。ffmpeg ではpantremoloで使える。左右のチャンネルの位相や波形をずらしたりする LFO (low frequency oscillator) を元に音量を変える。オフセットが 0 のときはトレモロと同じように左右のチャンネルを等しく変える。オフセットが 0.5 のときはオートパンのように周波数の半分の位相をずらす。オフセットが 1 のときは再び等しく変え、1 に近づくほどより早く右から左へのスピーカーに音が渡されずれが小さくなる。

基本コマンド

ffplay input -af apulsator=level_in=1:level_out=1:mode=sine:1:amount=1:offset_l=0:offset_r=0.5:width=1:timing=hz:hz=2

ahistogramを併用するとずれ具合が見える化する
ffplay -f lavfi amovie=input,apulsator=level_in=1:level_out=1:mode=sine:1:amount=.8:offset_l=.6:offset_r=1:width=1:timing=bpm:hz=2,ahistogram=dmode=separate:r=25:s=hd720:scale=log:ascale=log:acount=1:rheight=.1:slide=replace[out0];amovie=input,apulsator=level_in=1:level_out=1:mode=sine:1:amount=.8:offset_l=.6:offset_r=1:width=1:timing=bpm:hz=2[out1]

音量のヒストグラムを映像化する ahistogram

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

Continue reading “音量を脈打つように上げ下げできる apulsator”

こもった音や割れた音に変える aemphasis

LPレコードやCDなどのフィルタカーブで強調された素材を作成または復元するaemphasisの使い方。音割れさせたりこもった音に変えたりできる。

基本コマンド

ffplay input -af aemphasis=level_in=1:level_out=1:mode=reproduction:type=cd

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

Continue reading “こもった音や割れた音に変える aemphasis”

複数の周波数帯の音量を変えるanequalizer

指定したチャンネルの周波数帯の音量を変えられるanequalizerフィルタの使い方。似たフィルタが他にもありequalizerは同じように周波数帯のゲインを調整するがこちらのほうがわかりやすい。compandフィルタはDTMの設定になれている人向け。

基本コマンド

ステレオ音声を読み込み c0(FL)の周波数4000Hzの周辺200Hzを-10dBにする。c1(FR)は10dBにする。
ffmpeg -i input -af "anequalizer=c0 f=4000 w=200 g=-10|c1 f=4000 w=200 g=10" -c:v copy output
ffplay -i input -af "anequalizer=c0 f=4000 w=200 g=-10|c1 f=4000 w=200 g=10"

showspectrumpicフィルタを併用すると効果の具合が視覚的に分かる。
ffmpeg -i input -filter_complex "anequalizer=c0 f=4000 w=200 g=-20|c1 f=4000 w=200 g=20",showspectrumpic=s=1024x1024:mode=separate anequalizer.png

不可逆圧縮された音声のカットされた周波数が調べられる showspectrumpic

anequalizer と showspectrumpic を併用して効果を見える化

curves=1で映像化するが用途不明。
ffmpeg -i input -filter_complex "anequalizer=c0 f=4000 w=200 g=-10|c1 f=4000 w=200 g=-10:curves=1[v][a]" -map [v] -map [a] output
ffplay -f lavfi -i "amovie=input.mp4,anequalizer=c0 f=4000 w=200 g=-10|c1 f=4000 w=200 g=-10:curves=1:mgain=-60:fscale=0[out1]"

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

Continue reading “複数の周波数帯の音量を変えるanequalizer”

2016年1月のニコ生統計

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

Continue reading “2016年1月のニコ生統計”

ニューラルネットワーク予測を使ってインターレース解除する nnedi

ニューラルネットワーク予測のエッジ補正からインターレースを解除するフィルタnnediの使い方。既存のインターレース解除フィルタyadif, w3fdif, bwdifに比べてかなり処理速度の遅いフィルタである。今までは AviSynth や Vapoursynth で使われているフィルタなのでそちらで検索すると使い方を調べることができる。rpowオプションは組み込まれていないのでアップスケールには使えない。

関連記事
ffmpeg でインターレース解除

基本コマンド

プレビューがもたつくかもしれない
ffmpeg -i input -vf nnedi=deint=all:field=a:planes=7:nsize=s32x4:nns=n32:qual=fast:etype=a:pscrn=new output
ffplay -i input -vf nnedi=deint=all:field=a:planes=7:nsize=s32x4:nns=n32:qual=fast:etype=a:pscrn=new

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

Continue reading “ニューラルネットワーク予測を使ってインターレース解除する nnedi”

不可逆圧縮された音声のカットされた周波数が調べられる showspectrumpic

音声データの周波数を調べて周波数と時間の2次元軸とした1枚画像を出力するshowspectrumpicの使い方。

リアルタイムに周波数を調べるにはshowspectrumフィルタを使う。
音声波形を表示する showspectrum, showwaves の使い方

基本コマンド

ffmpeg -i input -filter_complex showspectrumpic=s=1024x1024:mode=combined:color=intensity:scale=log:saturation=1:win_func=hann:orientation=vertical:gain=1:legend=1:start=0:stop=0 -y showspectrumpic.png

任意の周波数帯だけを表示するにはstart、stopの値を指定する。legend=1で経過時間を整数秒で表示するには12.8秒の倍数にするとよい。

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

Continue reading “不可逆圧縮された音声のカットされた周波数が調べられる showspectrumpic”

音量のヒストグラムを映像化する ahistogram

現在までの音量とリアルタイムの音量をヒストグラムで表示するahistogramの使い方。

基本コマンド

ffplay -f lavfi amovie=input,ahistogram=dmode=single:r=25:s=hd720:scale=log:ascale=log:acount=1:rheight=.1:slide=replace
ffmpeg -i audio -filter_complex ahistogram=dmode=single:r=25:s=hd720:scale=log:ascale=log:acount=1:rheight=.1:slide=replace -c:a copy output

Continue reading “音量のヒストグラムを映像化する ahistogram”

ffmpeg 3.0 リリース

2016年2月15日 に ffmpeg 3.0 Einstein(アインシュタイン)がリリースされた。今回のリリースはメジャーアップデートとなり、2.8 以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやエンコーダ、デコーダ等の新機能が全て取り込まれた。

RELEASE NOTES for FFmpeg 3.0 “Einstein”

2.8 以降に取り込まれた機能の一覧
Changelog 2.8.1 to 3.0 < git.videolan.org Git

今回のアップデートの主な特徴

  • ffplay の挙動変更
  • MP4 の暗号化、復号対応
  • DTS-HD を外部ライブラリに頼らずフルサポート
  • DXVA2、VAAPI の VP9 ハードウェアデコード対応
  • libaacplus と libvo-aacenc のサポート打ち切りと内蔵AACエンコーダの品質向上
  • マスターにしか追加されていなかったフィルタの追加
  • HLS のセキュリティ対策(2.8.5以降)

Continue reading “ffmpeg 3.0 リリース”

360°動画を個別の視点に展開する transform

公式のフィルタではなく Facebook の github レポジトリで公開したフィルタ。

Next-generation video encoding techniques for 360 video and VR | Engineering Blog | Facebook Code | Facebook
facebook/transform

インストール方法は Building に書いてあるので省略。

Continue reading “360°動画を個別の視点に展開する transform”