我收藏了相当多的音乐,以 FLAC 格式保存在我的 Ubuntu 笔记本电脑上。我想开始在 Mac 上播放这些音乐,并将其同步到我的 iPod。有人建议,最好的方法是将我的收藏转换为 ALAC,我决定这就是我想要做的。
在我深入研究并编写ffmpeg
通过某些复杂find
命令调用的自定义 shell 脚本之前,我想征求一些建议。
如何才能最好地将我现有的 FLAC 集合转换为 ALAC,而不会损失音频质量并保留所有元数据?
答案1
avconv(或者 ffmpeg,avconv 是其一个分支)可以从命令行执行此操作:
avconv -i input.flac -c:a alac output.m4a
它应该自行保存元数据。
对目录中的每个 flac 进行以下操作:
for f in ./*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done
递归执行每个 flac(在当前目录中和所有子目录):
shopt -s globstar
for f in ./**/*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done
如果您有 ogg 文件或类似格式的 flac,显然应该更改./*.flac
为./*.ogg
。
我认为这应该可以与存储库中的 avconv/ffmpeg 一起使用(因为 ALAC 是在 Apache 许可下发布的,可以合法分发),尽管我安装了 medibuntu 的版本。
如果您想删除原始文件,可以将其放入rm
循环中。此版本使用-n
avconv 标志,因此它不会覆盖任何已经存在的 ALAC 文件,并使用&&
代替;
意味着如果 avconv 因错误而停止,则不会删除原始 FLAC 文件:
for f in ./*.flac; do avconv -n -i "$f" -c:a alac "${f%.*}.m4a" && rm "$f"; done
请注意,使用 rm 删除文件是不可逆的(在法医数据恢复之外),因此请小心使用。