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


13

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

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

如何最好地将现有的FLAC集合转换为ALAC,而又不损失音频质量和保留所有元数据?


嗯 我很惊讶。我以为转码工具会有一个明显的选择,但我能找到的全部都集中在视频上。
RAOF

我最终在这里所做的是编写了一个自定义的Python脚本,称为metaflac,ffmpeg和AtomicParsley。
2012年

Answers:


21

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

avconv -i input.flac -c:a alac output.m4a

它应该自己保留元数据。

要在目录中执行所有操作:

for f in ./*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

递归地执行所有操作(在当前目录所有子目录中):

shopt -s globstar
for f in ./**/*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

如果您在ogg文件或其他内容中包含了标记,请明显更改./*.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

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


您知道如何用alac文件替换flac文件,而不是对flac文件进行alac复制吗?
user138784 2013年

@ user13不,avconv / ffmpeg无法做到这一点,它无法覆盖用作输入的文件。如果需要,可以使用rm删除原始文件。
evilsoup 2013年

我并不是一个真正的命令行专家(我对GNU / Linux还是很陌生),所以到目前为止,我一直是手动删除它们的。(鹦鹉螺,按类型排列文件,然后我可以在该目录中选择.flac文件并删除它们)。我将看看这种“ rm”是如何工作的。:)
user138784 2013年

@ user138我已经编辑了答案,以显示一种实现方式rm-尽管确实注意到了警告,但rm它几乎是不可逆的,它会直接删除文件,而不是将其移至垃圾箱。另一种选择是在循环结束使用globing (因此您可以检查是否没有问题...如果命令由于某种原因而失败,则您不希望rm -- *.flac删除原始文件):将删除所有工作目录中的FLAC。
evilsoup

谢谢你的建议!我通常将原始的flac文件保存在另一个目录中,因此不会丢失它们。
user138784
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.