将大型 ALAC 库转换为 MP3 的最有效方法

Led*_*eda 5 linux mp3 debian ffmpeg lame

我有一大堆翻录成 alac 的 CD,我将其用作我的主要音乐库。我想将此库的副本转换为用于便携式设备的 vbr mp3,但是我不想在我的笔记本电脑上执行此操作,因为有大约 650Gb 的音乐,而且我经常旅行以让我的笔记本电脑坐着因为它需要转换我的整个图书馆。我的朋友有一些服务器空间(运行 Debian Squeeze),他愿意借给我一两个星期来转换我的库。什么是最好的实用程序或方法。对于单首歌曲或单张专辑,我只使用类似

#!/bin/sh
for file in "$@" ; do
name=`echo "$file" | sed -e "s/.mp4$//g"`
ffmpeg -i "$file" -ac 2 -f wav - | lame --preset standard - "$name.mp3"
done
Run Code Online (Sandbox Code Playgroud)

我相信有一种更有效的方法可以做到这一点。我的音乐目前组织为“艺术家 - 专辑 - 曲目”,我希望输出反映这一点。

use*_*686 5

在下面的示例中,~/Music/假定为源目录。


创建一个convert.sh脚本:

$ cat > convert
#!/bin/bash
input=$1
output=${input#.*}.mp3
ffmpeg -i "$input" -ac 2 -f wav - | lame -V 2 - "$output"
[Ctrl-D]
$ chmod +x convert
Run Code Online (Sandbox Code Playgroud)

使用parallel来自moreutils的转换:

$ find ~/Music/ -type f -name '*.mp4' -print0 | xargs -0 parallel ./convert --
Run Code Online (Sandbox Code Playgroud)

不要与 GNU 混淆parallel,后者使用不同的语法:

$ find ~/Music/ -type f -name '*.mp4' | parallel ./convert
Run Code Online (Sandbox Code Playgroud)