我正在尝试找一个能够获取音频文件(例如.ogg,.wav)并将其转换为mp3以便在网页上播放的Python库。
此外,任何关于设置播放质量的想法都会很棒。
谢谢。
答案 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/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”或其他命令行编码器。