Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于将文件转换为MP3并设置其质量的Python库_Python_Audio_Compression - Fatal编程技术网

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

用于将文件转换为MP3并设置其质量的Python库,python,audio,compression,Python,Audio,Compression,我正在尝试找到一个Python库,它可以获取音频文件(例如,.ogg,.wav),并将其转换为mp3以便在网页上播放 此外,任何关于设置播放质量的想法都将非常好 谢谢。看起来PyMedia是这样做的: 这里还有一些关于在设置比特率时转换为各种格式的更多信息: e、 g 此外,应该能够在不需要其他库的情况下完成这项工作,如果您使用共享的web托管帐户来完成这项工作,可能会更容易。(但必须承认,我没有尝试过,所以我无法确认它的可用性。)另一种避免为这个简单任务安装Python模块的方法是从Pyt

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

此外,任何关于设置播放质量的想法都将非常好


谢谢。

看起来PyMedia是这样做的:

这里还有一些关于在设置比特率时转换为各种格式的更多信息:

e、 g


此外,应该能够在不需要其他库的情况下完成这项工作,如果您使用共享的web托管帐户来完成这项工作,可能会更容易。(但必须承认,我没有尝试过,所以我无法确认它的可用性。)

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

我使用用于gstreamer的Python绑定。开始有点困难,但一旦开始,一切都有可能

从命令行(从):

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


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

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

我编写的设计就是为了这样做的=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")

PyMedia看起来很有希望。虽然看起来他们在Python 2.3之后不再支持它了,但看起来很不错!你能指定MP3的质量吗?我很想在项目中使用它,但无法设置质量对我来说将是一个阻碍。有没有办法设置输出文件的比特率?如果有帮助的话。。请确保从第一个开始安装ffmpeg,并且在可执行路径中有。pydub需要它。@iLightower。你说的可执行路径是什么意思?python根路径?你能详细说明一下吗?我已经下载了
ffmpeg
,但不确定从哪里提取它。我习惯于只运行
exe
文件。看起来包裹里没有。@jason我的意思是。。在系统路径中添加ffmpeg.exe(例如,这显示了如何将路径添加到windows)。。。我通常在一个文件夹中复制和独立所需的工具,例如(C:\Program Files\MyTools),并将此文件夹添加到路径中。。在这个文件夹中,我保存了python或其他程序所需的文件(ffmpeg.exe、chromdriver.exe、anyfully.exe等)。一旦我加上。。。在任何程序中调用ffmpeg.exe都可以。哇,我不知道这是怎么做到的。关于如何调用动态库的大+1。
from pydub import AudioSegment
AudioSegment.from_file("/input/file").export("/output/file", format="mp3")
from pydub import AudioSegment
sound = AudioSegment.from_file("/input/file")
sound.export("/output/file", format="mp3", bitrate="128k")