查找所有 ALAC 文件并将其转换为 mp3 / opus / aac

查找所有 ALAC 文件并将其转换为 mp3 / opus / aac

我正在寻找一种方法将目录中的所有 alac 文件递归转换为另一种格式。

问题:alac 和 aac 使用后缀 m4a,因此find -name "*.m4a"不起作用。

答案1

您需要一个可以检测 m4a 文件中的编解码器的工具。其中一种工具是 avprobe,它可以在基于 debian 的 Linux 中的 libav-tools 包中使用(我使用 Ubuntu 14.04)。

然后你可以这样做(如果文件名中没有换行符..):

find . -name \*.m4a | while read file; do avprobe "$file" 2>&1 |grep -q 'Audio: alac' && echo "$file"; done

显然取代echo "$file"了转换命令。

如果安装这样的工具不可行,您可以使用 来估计grep -q Halac "$file" && grep -q '$alac' "$file"。我测试的几个苹果无损文件包含这两个字符串,但它可以以很小的概率匹配不是真正的苹果无损编解码器的文件,并且我不太确定苹果无损文件是否保证包含这些字符串。如果没问题的话,上面就变成了

find . -name \*.m4a | while read file; do grep -q Halac "$file" && grep -q '$alac' "$file" && echo "$file"; done

相关内容