Python实现批量转换WAV到FLAC

不得不说WAV的metadata真的是万恶之源,至今都没有一个公认的metadata标准,各家的实现各不相同。而这也导致了,我们在管理音乐的过程中基本都会遇到WAV引起的乱码问题。

Wav和FLAC都是无损格式,理论上来说两者的播放效果是相同的,所以笔者决定把部分WAV音乐转化为FLAC。当然,由于两种格式的解码过程不同,也有说法是两者的播放效果可能有差异,但笔者就暂不考虑这一问题了。

除了必要的Python外,还需要安装的有 ffmpeg 。

ffmpeg官网只给了源代码,笔者建议直接下载编译版,比如 Windows builds from gyan.dev 或者 Static builds for macOS 64-bit 。下载并解压后记得将bin目录添加至环境变量。

Python的代码如下,记得将路径替换为你的音乐所在的文件夹。有一点要注意,脚本会在转换完成后删除原文件,如果打算保留原文件请删除或者注释最后一行。

import os

def wavToFlac(file_dir):
    save_dir = file_dir.replace('.wav', '.flac')
    cmd = 'ffmpeg -i "%s" "%s"' %(file_dir, save_dir)
    os.system(cmd)
 

if __name__ == "__main__":
 
    g = os.walk(r'D:\\Your\\path')
    for path,dir_list,file_list in g:  
        for file_name in file_list:  
            if file_name.split('.')[-1] == 'wav':
                full_name = os.path.join(path, file_name)
                wavToFlac(full_name)
                os.remove(full_name) # 删除原文件

Leave a Reply

Your email address will not be published. Required fields are marked *