如何在pydub中获得相同的输入和输出文件比特率?

时间:2015-11-17 01:38:05

标签: python audio bitrate pydub

我已经使用pydub输出文件(将文件切成较短的文件),一切都很好,但比特率从256k变为124k(为什么我会得到这个数字而不是128k?)。我知道AudioSegment有一个设置比特率的参数,但我只是希望每次都手动设置相同的比特率。有什么办法解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

这主要与ffmpeg / avlib有关,但您可以将标记传递给AudioSegment().export() method以指定您喜欢的比特率:

from pydub import AudioSegment
from pydub.utils import mediainfo

source_file = "/path/to/sound.mp3"

original_bitrate = mediainfo(source_file)['bit_rate']
sound = AudioSegment.from_mp3(source_file)

sound.export("/path/to/output.mp3", format="mp3", bitrate=original_bitrate)

答案 1 :(得分:1)

我无法使用mediainfo对象使用上面的示例。我刚刚找到了计算WAV文件here的比特率并使用它的方法。

将其翻译成python和pydub,并假设pydub对象被称为wav,你会得到: bitrate = str((wav.frame_rate * wav.frame_width * 8 * wav.channels) / 1000)

然后你可以将它传递给导出函数而不是手动设置它。希望它有所帮助:)