我已经使用pydub输出文件(将文件切成较短的文件),一切都很好,但比特率从256k变为124k(为什么我会得到这个数字而不是128k?)。我知道AudioSegment有一个设置比特率的参数,但我只是希望每次都手动设置相同的比特率。有什么办法解决这个问题吗?
答案 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)
然后你可以将它传递给导出函数而不是手动设置它。希望它有所帮助:)