如何将我的 FLAC 音乐收藏转换为 Apple Lossless?

jml*_*jml 13 music convert

我有一个合理大小的音乐收藏,我在我的 Ubuntu 笔记本电脑上以 FLAC 格式保存。我想开始在我的 Mac 上播放这些音乐,并将它从那里同步到我的 iPod。人们建议最好的方法是将我的收藏转换为 ALAC,我决定这就是我想要做的。

在我深入研究并编写ffmpeg通过一些复杂find命令调用的自定义 shell 脚本之前,我想我会寻求建议。

我怎样才能最好地将我现有的 FLAC 集合转换为 ALAC,同时不损失音频质量并保留所有元数据?

evi*_*oup 21

avconv(或 ffmpeg,avconv 是其分支)可以从命令行执行此操作:

avconv -i input.flac -c:a alac output.m4a
Run Code Online (Sandbox Code Playgroud)

它应该自己保留元数据。

要执行目录中的每个flac:

for f in ./*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done
Run Code Online (Sandbox Code Playgroud)

递归地执行每个flac(在当前目录所有子目录中):

shopt -s globstar
for f in ./**/*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done
Run Code Online (Sandbox Code Playgroud)

如果您在 ogg 文件或其他文件中有 flac,显然更改./*.flac./*.ogg.

我认为这应该与存储库中的 avconv/ffmpeg 一起使用(因为 ALAC 是在 Apache 许可下发布的,并且可以合法分发),尽管我安装了 medibuntu 的版本。

如果你想摆脱原始文件,你可以放入rm循环。此版本使用-navconv 标志,因此它不会覆盖任何已存在的 ALAC 文件,而使用&&代替;意味着如果 avconv 因错误停止,则不会删除原始 FLAC 文件:

for f in ./*.flac; do avconv -n -i "$f" -c:a alac "${f%.*}.m4a" && rm "$f"; done
Run Code Online (Sandbox Code Playgroud)

请注意,使用 rm 删除文件是不可逆的(在取证数据恢复之外),因此请小心使用它。