python实现音频文件格式转换(mp3,m4a,wav,wma,aac...)
网抑云ncm格式转mp3NCM格式是网抑云音乐独有的加密音频格式,主要用于保护音乐版权。这种格式的文件只能在网抑云音乐客户端内播放,无法在其他常见的音乐播放器上直接播放。因此,将NCM格式转换为MP3格式成为了一种常见的需求。
·
- 方法介绍:
在日常生活中,很多的音乐播放器下载的音频文件是特殊加密文件,在其他设备上无法正常播放,给我们带来诸多不便,为了正常使用我们可能会通过各类格式转换工具进行音频格式转换,劳民伤财!
今天我们通过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 路径
ffmpeg_path = r"C:\ffmpeg\bin" # 请确保这是你的 ffmpeg 安装路径
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:
# 检查 ffmpeg
if not setup_ffmpeg():
return
# 确保输出目录存在
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 获取所有m4a文件
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")
# 如果mp3文件已存在,跳过转换
if os.path.exists(mp3_path):
print(f"[{i}/{total}] {m4a_path.name} -> 已存在,跳过")
continue
print(f"[{i}/{total}] 正在转换 {m4a_path.name}...")
# 使用 ffmpeg 直接转换
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()
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)