方法介绍: 在日常生活中,很多的音乐播放器下载的音频文件是特殊加密文件,在其他设备上无法正常播放,给我们带来诸多不便,为了正常使用我们可能会通过各类格式转换工具进行音频格式转换,劳民伤财! 今天我们通过python语言进行音频文件格式转换,既可以学到技术,又可以给我们的工作生活带来便利!一举多得的好事!现在开打开编译器学起来吧! 准备工作: 在开始之前我们需要下载几个python所需的方法库,音频格式转换也是依托这几个库中的方法: 1)“下载地址: https://www.gyan.dev/ffmpeg/builds/” 注意:下载ffmpeg;下载后解压到C盘根目录下!!!;将C:\ffmpeg\bin 添加到系统环境变量!!! 不会添加系统环境变量的看这里——>(https://blog.csdn.net/zhan9le/article/details/145133484?sharetype=blogdetail&sharerId=145133484&sharerefer=PC&sharesource=zhan9le&sharefrom=mp_from_link)
"""
音频文件格式转换工具
"""
import os
from pydub import AudioSegment
from pathlib import Path
现在开始:(按照第二步准备工作做好后,直接复制即可)
def setup_ffmpeg ( ) :
"""设置 ffmpeg 路径"""
try :
ffmpeg_path = r"C:\ffmpeg\bin"
if os. path. exists( ffmpeg_path) :
os. environ[ "PATH" ] += os. pathsep + ffmpeg_path
else :
print ( "警告: 未找到 ffmpeg,请安装 ffmpeg 并设置正确的路径" )
print ( "下载地址: https://www.gyan.dev/ffmpeg/builds/" )
print ( "1. 下载 ffmpeg" )
print ( "2. 解压到 C:\\ffmpeg" )
print ( "3. 将 C:\\ffmpeg\\bin 添加到系统环境变量" )
return False
return True
except Exception as e:
print ( f"设置 ffmpeg 失败: { e} " )
return False
转换代码:(直接复制即可)
def convert_m4a_to_mp3 ( input_folder: str , output_folder: str ) :
"""
将文件夹中的所有m4a文件转换为mp3
Args:
input_folder: 输入文件夹路径
output_folder: 输出文件夹路径
"""
try :
if not setup_ffmpeg( ) :
return
if not os. path. exists( output_folder) :
os. makedirs( output_folder)
m4a_files = list ( Path( input_folder) . glob( '*.m4a' ) )
total = len ( m4a_files)
print ( f"找到 { total} 个m4a文件" )
for i, m4a_path in enumerate ( m4a_files, 1 ) :
try :
if not os. path. exists( m4a_path) :
print ( f"[ { i} / { total} ] { m4a_path. name} -> 源文件不存在,跳过" )
continue
mp3_path = os. path. join( output_folder, f" { m4a_path. stem} .mp3" )
if os. path. exists( mp3_path) :
print ( f"[ { i} / { total} ] { m4a_path. name} -> 已存在,跳过" )
continue
print ( f"[ { i} / { total} ] 正在转换 { m4a_path. name} ..." )
cmd = f'ffmpeg -i " { m4a_path} " -acodec libmp3lame -ab 320k " { mp3_path} "'
result = os. system( cmd)
if result == 0 :
print ( f"[ { i} / { total} ] { m4a_path. name} -> 转换成功" )
else :
print ( f"[ { i} / { total} ] { m4a_path. name} -> 转换失败" )
except Exception as e:
print ( f"[ { i} / { total} ] { m4a_path. name} -> 转换失败: { e} " )
continue
print ( "\n转换完成!" )
print ( f"输出目录: { output_folder} " )
except Exception as e:
print ( f"转换过程出错: { e} " )
转换代码:(修改文件路径后直接复制即可)
def main ( ) :
input_folder = r"这里填当前需要转换的文件路径"
output_folder = r"这里填转换的文件存放路径"
convert_m4a_to_mp3( input_folder, output_folder)
if __name__ == "__main__" :
main( )