用于将文件转换为MP3并设置其质量的Python库

时间:2009-08-07 17:51:40

标签: python audio compression

我正在尝试找一个能够获取音频文件(例如.ogg,.wav)并将其转换为mp3以便在网页上播放的Python库。

此外,任何关于设置播放质量的想法都会很棒。

谢谢。

6 个答案:

答案 0 :(得分:36)

我写了a library来做那个= D

from pydub import AudioSegment
AudioSegment.from_file("/input/file").export("/output/file", format="mp3")

容易!

指定比特率,只需使用bitrate kwarg ...

from pydub import AudioSegment
sound = AudioSegment.from_file("/input/file")
sound.export("/output/file", format="mp3", bitrate="128k")

答案 1 :(得分:4)

我使用gstreamer的Python绑定。这有点难以开始,但一旦你开始几乎任何可能的事情。

从命令行(来自gstreamer's documentation):

gst-launch -v filesrc location=music.wav ! decodebin ! audioconvert ! audioresample ! lame bitrate=192 ! id3v2mux ! filesink location=music.mp3

输入filesrc location=...可以是gstreamer可以播放的任何内容,而不仅仅是.wav。在编码之前,您可以添加称为大写过滤器的内容以重新采样到特定的速率。

在Python程序中,您将使用gst.parse_launch(...),获取filesrc和filesink元素,并调用setter来更改输入和输出文件名。

答案 2 :(得分:3)

PyMedia看起来像这样:

http://pymedia.org/

以及有关转换为各种格式的更多信息,同时设置比特率:

http://pymedia.org/tut/recode_audio.html

e.g。

params= {
'id': acodec.getCodecId('mp3'),
'bitrate': r.bitrate,
'sample_rate': r.sample_rate,
'ext': 'mp3',
'channels': r.channels }
enc= acodec.Encoder( params )

答案 3 :(得分:3)

此外,Python Audio Tools应该能够在不需要其他库的情况下完成工作,如果您在共享的Web托管帐户上执行此操作,这可能会更容易。 (但我承认我没有尝试过,所以我无法证实它有多可用。)

答案 4 :(得分:2)

您可以使用ctypes模块直接从动态库调用函数。它不需要你安装外部Python库,它比命令行工具具有更好的性能,但它通常更难实现(当然,你需要提供外部库)。

答案 5 :(得分:1)

避免为这个简单的任务安装Python模块的另一个选择是从Python脚本(使用popen模块)执行“lame”或其他命令行编码器。