Q-Logo 我的学习笔记分享

ffmpeg 调整音频/视频的音量

查看音量

以 .mp4 的视频文件为例,音频文件也是一样的

ffmpeg -i IMG_2090.MP4 -af "volumedetect" -f null /dev/null

输出的末尾会类似这样

[Parsed_volumedetect_0 @ 0000026934afa900] n_samples: 7827456

[Parsed_volumedetect_0 @ 0000026934afa900] mean_volume: -36.3 dB

[Parsed_volumedetect_0 @ 0000026934afa900] max_volume: -13.5 dB

[Parsed_volumedetect_0 @ 0000026934afa900] histogram_13db: 13

[Parsed_volumedetect_0 @ 0000026934afa900] histogram_14db: 71

[Parsed_volumedetect_0 @ 0000026934afa900] histogram_15db: 164

[Parsed_volumedetect_0 @ 0000026934afa900] histogram_16db: 344

[Parsed_volumedetect_0 @ 0000026934afa900] histogram_17db: 662

[Parsed_volumedetect_0 @ 0000026934afa900] histogram_18db: 1505

[Parsed_volumedetect_0 @ 0000026934afa900] histogram_19db: 2830

[Parsed_volumedetect_0 @ 0000026934afa900] histogram_20db: 5073

注意一下其中的mean_volume 和max_volume 后面的分贝值,就是当前视频中所含音频文件的平均音量和最大音量。

调大音量

用如下命令将 IMG_2090.MP4 文件的音量调大 10dB (调小就写 -10dB),输出到 out.mp4 文件中。

ffmpeg -i IMG_2090.MP4 -vcodec copy -af "volume=10dB" out.mp4

调大10dB 后,再用命令查看音量

ffmpeg -i out.mp4 -af "volumedetect" -f null /dev/null

输出的末尾为

[Parsed_volumedetect_0 @ 000002f7a433aa80] n_samples: 7827456

[Parsed_volumedetect_0 @ 000002f7a433aa80] mean_volume: -26.3 dB

[Parsed_volumedetect_0 @ 000002f7a433aa80] max_volume: -3.4 dB

[Parsed_volumedetect_0 @ 000002f7a433aa80] histogram_3db: 13

[Parsed_volumedetect_0 @ 000002f7a433aa80] histogram_4db: 71

[Parsed_volumedetect_0 @ 000002f7a433aa80] histogram_5db: 161

[Parsed_volumedetect_0 @ 000002f7a433aa80] histogram_6db: 342

[Parsed_volumedetect_0 @ 000002f7a433aa80] histogram_7db: 659

[Parsed_volumedetect_0 @ 000002f7a433aa80] histogram_8db: 1469

[Parsed_volumedetect_0 @ 000002f7a433aa80] histogram_9db: 2767

[Parsed_volumedetect_0 @ 000002f7a433aa80] histogram_10db: 5028

可以看出音量已经调大,播放out.mp4 能感觉到音量明显比原来的IMG_2090.MP4 大。

另外,也可以不用分贝数,直接写一个数字,大于1则调大,小于1则调小,例如

ffmpeg -i IMG_2090.MP4 -vcodec copy -af "volume=2" out.mp4