blog.monophile.net

コンピュータのこととかのメモ。

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS] においてメディア表現を専攻し修了。 現在は digitiminimi Inc. において、インフラエンジニアとして生計をたててている。

work

各種システム構築と管理を承ります。

Cloud PlatformOpenstack, GCP, AWS, Azure, ...
Openstackkeystone, glance, cinder, swift, neutron, nova, ...
VirtualizationQEMU+KVM, LXD/LXC, Docker, ...
OSDebian GNU/Linux, Ubuntu, CentOS, ...
NetworksIPSec, L2TP, VXLAN, WirelessAP, ...
WebAppsWordPress, GitLab, Redmine, ...
Configuration ManagementAnsible, Terraform, ...
MonitoringNagios, Munin, ...

posts

ffmpegとSoXで音源の特性を調べる

いきさつ

マスタリングの音圧に関しての記事 http://pspunch.com/pd/article/loudness/ を読んで、LUFSってどうやったら調べられるんだろう、と思ってやってみた。

SoXを使う

# install

MacPortsを使ってffmpegとSoXをインストールします。

$ sudo port install ffmpeg sox

音源の特性

以下のコマンドでtest.wavの特性が分かります。 statsの場合はLeft-Rightチャネルを別々に解析し、statの場合はモノラルでの計測になります。

$ sox test.wav -n -S stats

すると以下の様な出力を得ます。

Input File     : 'test.wav'
Channels       : 2
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:04:17.88 = 11372508 samples = 19341 CDDA sectors
File Size      : 45.5M
Bit Rate       : 1.41M
Sample Encoding: 16-bit Signed Integer PCM

In:100%  00:04:17.88 [00:00:00.00] Out:11.4M [!=====|=====!] Hd:0.4 Clip:0
             Overall     Left      Right
DC offset   0.000038  0.000038  0.000027
Min level  -0.946869 -0.946106 -0.946869
Max level   0.946777  0.942383  0.946777
Pk lev dB      -0.47     -0.48     -0.47
RMS lev dB    -12.09    -12.49    -11.73
RMS Pk dB      -6.97     -7.70     -6.97
RMS Tr dB       -inf      -inf      -inf
Crest factor       -      3.98      3.65
Flat factor     0.00      0.00      0.00
Pk count           2         2         2
Bit-depth      16/16     16/16     16/16
Num samples    11.4M
Length s     257.880
Scale max   1.000000
Window s       0.050
Done.

動画の音声の特性

ffmpegを用いれば動画の音声についても同様に調べることができます。

$ ffmpeg -v quiet -ac 2 -channel_layout stereo -i test.mov -f sox - | sox -t sox - -n stats

音源のLUFS

ffmpegを用いてLUFSを調べることができます。

$ ffmpeg -nostats -ac 2 -channel_layout stereo -vn -i test.wav -filter_complex ebur128 -f null -

すると結果が標準出力に書かれて、I:の項が全体のLUFSの値になっています。

 :
 :
 :
  Integrated loudness:
    I:          -9.3 LUFS
    Threshold: -19.4 LUFS

  Loudness range:
    LRA:         4.4 LU
    Threshold: -29.4 LUFS
    LRA low:   -11.6 LUFS
    LRA high:   -7.2 LUFS

reference