1 准备条件
需要安装ffmpeg,安装教程:[https://blog.csdn.net/liupeng19970119/article/details/110433807]
2 python代码
转换后会删除原始文件,如果不需要删除,将cmd_command命令里面del删除再执行
'''
功能:读取指定文件夹下的所有mp3文件,转换为wav文件
用法:修改path路径 filter改为".m4a",就是遍历当前目录下的m4a文件,注释掉35行的cmd_command
转换其它的:最主要是用字符串拼接出cmd_command命令
'''
import os
path=r'D:\Desktop\照片'
filter=[".m4a"] #设置过滤后的文件类型 当然可以设置多个类型
def all_path(dirname):
result = []#所有的文件
for maindir, subdir, file_name_list in os.walk(dirname):
for filename in file_name_list:
apath = os.path.join(maindir, filename)#合并成一个完整路径
ext = os.path.splitext(apath)[1] # 获取文件后缀 [0]获取的是除了文件名以外的内容
if ext in filter:
result.append(apath)
return result
filenames=all_path(path)
for filename in filenames:
filename=str(filename)
temp=filename.split('.')
#将.m4a格式转为wav格式的命令
cmd_command = "ffmpeg -i {0} -acodec pcm_s16le -ac 1 -ar 16000 -y {1}.wav && del {0}".format(filename,temp[0])
# 将.mp3格式转为wav格式的命令
#cmd_command = "ffmpeg -loglevel quiet -y -i {0} -ar 16000 -ac 1 {1}.wav && del {0}".format(filename, temp[0])
#print(cmd_command)
os.system(cmd_command)
3 单个转换命令
- 转MP3为wav
ffmpeg -i input.mp3 -acodec pcm_s16le -ac 2 -ar 44100 output.wav
- 转m4a为wav
ffmpeg -i input.m4a -acodec pcm_s16le -ac 2 -ar 44100 output.wav
- wav与PCM的相互转换
ffmpeg -i input.wav -f s16le -ar 44100 -acodec pcm_s16le output.raw
- PCM转wav
ffmpeg -f s16le -ar 44100 -ac 2 -acodec pcm_s16le -i input.raw output.wav