python f.write 保存图片到路径_Python 多种音乐格式批量转换实战教程

Pydub是一个基于ffmpeg的Python音频处理模块,封装了许多ffmpeg底层接口,因此用它来做音乐歌曲文件格式转换会非常方便,如果你阅读过我们之前的文章:剪辑音乐要很久?3行语句Python瞬间搞定 你就知道它有多么强大了。

今天给大家介绍它的音乐文件格式转换功能,几乎支持所有音乐音频格式,非常强大。

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),安装pydub:

pip install pydub

1.mp3转wav或其他格式

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

from pydub import AudioSegmentdef 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")

微信公众号里代码字体实在是太大了,而且有时候没有高亮提醒,这里多提供一个图片版代码(下同):

1e5aefd5edd566381ac6e6d39f8d000c.png

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

from pydub import AudioSegmentdef 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}")


图片版代码:

eb5d1fc7008ffe69f73128587ad9dd2b.png

如ogg格式:

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

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

wavavimp4flv
oggflacapemp2
aiffvocau

2.更加通用的转换函数

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

from pydub import AudioSegmentdef 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}")


图片版代码:

cf238e886b9bcb30b9c920e9ae2c3f96.png

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

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

或者MP4格式,总之,一般而言你需要的格式它都能满足。

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

3.批量转化音频格式

现在,尝试将一个文件夹下的所有非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)


图片版代码:

2cdeb055126eb390794bd8e16e7af0f1.png


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

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

如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞/在看9950b17fb1ae779192b581bfa083e133.png,有任何问题都可以在下方留言,我们会耐心解答的!

Python实用宝典 (pythondict.com)

不只是一个宝典

欢迎关注公众号:Python实用宝典 19d30715ff33a586ae69cba025ea2262.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值