我正在编写一个脚本来将AAC文件转换为MP3,因此我可以将它们刻录到MP3 CD上,因为iTunes不会在运行时进行转码。我修改了代码Write a simple python script to convert all .wav files in a specific folder to .mp3 using lame将AAC(.m4a)文件转换为目录中的.mp3
它目前转换目录中的第一个文件,然后停止。
我有一个粗略的Python知识,但不是子进程模块。浏览了文档,无法明白为什么它不会继续处理这些文件。
#!/usr/bin/env python
import os
import os.path
import sys
import subprocess
OUTPUT_DIR = '/Users/matt/Desktop/mp3/'
def main():
path = os.getcwd()
filenames = [
filename
for filename
in os.listdir(path)
if filename.endswith('.m4a')
]
for filename in filenames:
subprocess.call([
"ffmpeg", "-i",
os.path.join(path, filename),
"-acodec", "libmp3lame", "-ab", "256k",
os.path.join(OUTPUT_DIR, '%s.mp3' % filename[:-4])
])
return 0
if __name__ == '__main__':
status = main()
sys.exit(status)
我知道这是一个老问题,你可能已经做到了,但将AAC转换为MP3是一个糟糕的主意,因为你会两次质量下降(都是有损格式)。您应该重新从CD上翻录文件以确保您拥有最优质的MP3。 – Cromulent 2012-12-04 22:06:17
@Cromulent知道!其背景是从我现有的iTunes AAC库中为我的汽车创建MP3 CD(iPhone附件> 180美元),而无需通过iTunes(将MP3文件自动添加到库)来创建。由于我不是通过高保真级别的设备播放音乐,而且我开始使用〜256k + AAC文件,所以损失是可以接受的。 – elithrar 2012-12-05 03:46:25