我用 pydub 输出一个文件(把文件剪成更短的文件),一切都很好,但是比特率从 256k 变成了 124k(为什么我会得到这个数字而不是 128k?)。我知道 AudioSegment 有一个设置比特率的参数,但我只想要相同的比特率,而不是每次手动设置。有什么办法可以解决这个问题?
问问题
3447 次
2 回答
8
这主要与 ffmpeg/avlib 有关,但您可以将标志传递给该AudioSegment().export()
方法以指定您想要的比特率:
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)
于 2015-11-20T15:57:07.493 回答
2
我无法使用上面的示例使用该mediainfo
对象。我刚刚在这里找到了计算 WAV 文件比特率的方法并使用了它。
将其翻译成 python 和 pydub,并假设调用了 pydub 对象,wav
您将得到:
bitrate = str((wav.frame_rate * wav.frame_width * 8 * wav.channels) / 1000)
然后你可以将它传递给导出函数而不是手动设置它。希望能帮助到你 :)
于 2016-05-23T21:28:23.660 回答