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

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 pydub2. 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模块你能轻易地解决这些问题。如果本篇文章对你有帮助,请在文末点个赞在看支持一下哦。
免费信息发布网相关文章
电脑驱动重装教程(轻松学会电脑驱动重装,解决设备冲突和性能问题)
摘要:现如今,电脑已经成为人们生活和工作中必不可少的工具。但是,随着时间的推移,电脑的驱动程序可能会出现问题,导致设备冲突和性能下降。为了解决这些问题,我们需要学会如何重新安装电脑驱动。...2025-11-04
假设要加载磁盘上的一个文件,并以二进制形式读取文件的数据。若要从健壮性的角度考虑,需得考虑两种异常情况:加载文件失败,例如给定的文件路径并不存在该文件 读取文件数据失败,例如磁盘扇区有故2025-11-04
“地球直径12741.56公里,月球直径3483.36公里”,这样的描述你可能很难理解地球与月球的大小,然而通过同比例缩放为球体的话,人们会非常直观的理解两者的大小,这种技巧就是对比学习。开发者面对的2025-11-04
1.未来已经在这里,它只是分布不均。—— 威廉·吉布森数字时代就在我们身边。将软件开发视为高成本开销而不是竞争力的企业将会举步维艰。为了参与并在这个数字世界中繁荣兴旺,企业必须学会适应我们这个时代的不2025-11-04网吧电脑脱离主机教程(轻松拆解,自由组装,享受自由游戏体验)
摘要:随着科技的不断发展,越来越多的人选择在网吧享受游戏的乐趣。然而,在繁忙的人群中找到一个空余的电脑并不容易。为了解决这个问题,我们可以学习一些技巧,将网吧电脑脱离主机,实现随时随地的...2025-11-04
有时候人们并不关注这些细节,但这方面的知识肯定有用,尤其是当你正在编写与测试或errors相关的库。例如这个星期我们的chai中出现了一个令人惊叹的Pull Request,它大大改进了我们处理堆栈跟2025-11-04

最新评论