您现在的位置是:亿华云 > 系统运维

Python 多种音乐格式批量转换实战教程

亿华云2025-10-03 20:17:41【系统运维】4人已围观

简介Pydub是一个基于ffmpeg的Python音频处理模块,封装了许多ffmpeg底层接口,因此用它来做音乐歌曲文件格式转换会非常方便。如果你阅读过我们之前的文章,就知道 Pydub 有多么强大了。今

Pydub是多种一个基于ffmpeg的Python音频处理模块,封装了许多ffmpeg底层接口,音乐因此用它来做音乐歌曲文件格式转换会非常方便。格式

如果你阅读过我们之前的批量文章,就知道 Pydub 有多么强大了。转换

今天给大家介绍它的实战音乐文件格式转换功能,几乎支持所有音乐音频格式,教程非常牛逼。多种

1. 安装

安装Pydub前需要先安装 ffmpeg:

(可选一) Mac(打开终端(Terminal),音乐 用 homebrew 安装):

brew install ffmpeg --with-libvorbis --with-sdl2 --with-theora

(可选二) Linux:

apt-get install ffmpeg libavcodec-extra

(可选三) Windows:

1. 进入 http://ffmpeg.org/download.html#build-windows,点击 windows 对应的格式图标,进入下载界面点击 download 下载按钮。批量

2. 解压下载好的服务器租用转换zip文件到指定目录。

3. 将解压后的实战文件目录中 bin 目录(包含 ffmpeg.exe )添加进 path 环境变量中。

(必须) 按照上述ffmpeg安装步骤成功后就可以打开命令提示符(cmd)或终端(Terminal),教程安装pydub:

pip install pydub

2. mp3转wav或其他格式

将单个mp3音频文件转化为wav音频格式:

from pydub import AudioSegment

def trans_mp3_to_wav(filepath):

"""

将mp3文件转化为wav格式

Args:

filepath (str): 文件路径

"""

song = AudioSegment.from_mp3(filepath)

filename = filepath.split(".")[0]

song.export(f"{ filename}.wav",多种 format="wav")

可以继续封装该函数,将单个mp3文件转化为任意其他音乐音频格式:

from pydub import AudioSegment

def trans_mp3_to_any_audio(filepath, audio_type):

"""

将mp3文件转化为任意音频文件格式

Args:

filepath (str): 文件路径

audio_type(str): 文件格式

"""

song = AudioSegment.from_mp3(filepath)

filename = filepath.split(".")[0]

song.export(f"{ filename}.{ audio_type}", format=f"{ audio_type}")

如ogg格式:

trans_mp3_to_any_audio("Alone.mp3", "ogg")

只要是ffmpeg支持的音乐音频格式,它都可以转换,支持的格式长达几十个,下面我简单列一些:

wav

avi

mp4

flv

ogg

flac

ape

mp2

aiff

voc

au

3. 更加通用的转换函数

刚刚是mp3转任意音频格式,我希望把它写成任意音频格式转任意音频格式:

from pydub import AudioSegment

def trans_any_audio_types(filepath, input_audio_type, output_audio_type):

"""

将任意音频文件格式转化为任意音频文件格式

Args:

filepath (str): 文件路径

input_audio_type(str): 输入音频文件格式

output_audio_type(str): 输出音频文件格式

"""

song = AudioSegment.from_file(filepath, input_audio_type)

filename = filepath.split(".")[0]

song.export(f"{ filename}.{ output_audio_type}", format=f"{ output_audio_type}")

比如将ogg音乐音频格式转化为flv音乐音频格式:

trans_any_audio_types("Alone.ogg", "ogg", "flv")

或者MP4格式,总之,云服务器一般你需要的格式它都能满足。

trans_any_audio_types("Alone.ogg", "ogg", "mp4")

4. 批量转化音频格式

现在,尝试将一个文件夹下的所有非mp3音频格式的文件转化为mp3音频格式:

def trans_all_file(files_path, target="mp3"):

"""

批量转化音频音乐格式

Args:

files_path (str): 文件夹路径

target (str, optional): 目标音乐格式. Defaults to "mp3".

"""

for filepath in os.listdir(files_path):

# 路径处理

modpath = os.path.dirname(os.path.abspath(sys.argv[0]))

datapath = os.path.join(modpath, files_path + filepath)

# 分割为文件名字和后缀并载入文件

input_audio = os.path.splitext(datapath)

song = AudioSegment.from_file(datapath, input_audio[-1].split(".")[-1])

# 导出

song.export(f"{ input_audio[0]}.{ target}", format=target)

只要输入文件夹名称,即可全部转化该文件夹下的音乐文件格式为mp3格式:

trans_all_file("F:\\push\\20200607\\music\\")

看了我们今天的教程,学会这招后,你再也不用担心格式之间的转化问题,通过使用 pydub模块你能轻易地解决这些问题。如果本篇文章对你有帮助,请在文末点个赞在看支持一下哦。

亿华云

很赞哦!(83713)