2017年4月17日月曜日

Debian ffmpegで音量コントロール

Debiqan/GNU Linux jessie上の ffmpeg でmp3の音量を変えてみる。
音量変化は可能だけど、疑問は残ったままのメモ。

・ffmpegのバージョン
$ ffmpeg -version
ffmpeg version 2.6.9 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)

A) 元の音源ファイル infile.mp3 の音量をffmpegで見てみる。
$ ffmpeg -i infile.mp3 -af volumedetect -f null -
...
[Parsed_volumedetect_0 @ 0x8ead40] mean_volume: -15.5 dB
[Parsed_volumedetect_0 @ 0x8ead40] max_volume: 0.0 dB
...
-i infile.mp3     入力ファイルの指定。
-af volumedetect  オーディオフィルタを使用。volumedetectを指定。http://ffmpeg.org/ffmpeg-filters.html#volumedetect
-f null                     出力ファイルを強制しない (普通は -f mp3 などと書く)
-                            -f null とした場合、出力ファイル指定がないエラー対処 -f null /dev/null など書く場合の言い換えオプション。 http://blackhole.flnet.org/DOCS/ffmpeg/ffplay.html#null
B) infile.mp3を 3dBアップした後、上記と同じく音量を見てみる。
$ ffmpeg -i infile.mp3 -af "volume=3dB" audio_add3.mp3
$ ffmpeg -i audio_add3.mp3 -af volumedetect -f null -
...
[Parsed_volumedetect_0 @ 0x24df1e0] mean_volume: -12.9 dB
[Parsed_volumedetect_0 @ 0x24df1e0] max_volume: 0.0 dB
...
C) infile.mp3を 3dB下げて、音量を見てみる。
$ ffmpeg -i infile.mp3 -af "volume=-3dB" audio_minus3.mp3
$ ffmpeg -i audio_minus3.mp3 -af volumedetect -f null -
...
Parsed_volumedetect_0 @ 0x77d1e0] mean_volume: -18.9 dB
[Parsed_volumedetect_0 @ 0x77d1e0] max_volume: -3.2 dB
...
max_volume, mean_volume がよくわからん・・・
参考) 上記 A) B) C)を Audacityで開いた時の図。

A) infile.mp3
B) audio_add3.mp3
C) audio_minus3.mp3



2 件のコメント:

  1. 参考にさせて頂きました。ありがとうございました。

    「max_volume, mean_volume がよくわからん・・・」の点ですが、max volumeを基準に考えるのではないでしょうか?
    B) infile.mp3を 3dBアップの場合
    max volumeは目一杯なので変化なし
    mean volume: -12.9 dB→max volumeから平均の下げ幅が小さくなっている
    C) infile.mp3を 3dB下げの場合
    max volumeは下がっている(: -3.2 dB)
    mean_volume: -18.9 dB→max volumeから平均の下げ幅が大きくなっている

    以上です。

    返信削除
  2. mean_volume : 平均音量、max_volume : 最大音量
    なんとなく、ノーマライズ、オートマキシマイズ に関連するとの認識です。
    そういうことなんですね。ありがとうございました。

    返信削除

注: コメントを投稿できるのは、このブログのメンバーだけです。