Answers:
是的,鉴于两者在数学上都是无损的,因此转换也是无损的。
这样做的原因是,当对FLAC / ALAC文件进行解码时,始终可以将信号重构为其原始形式。因此,它们是等效的,即使进行多次转码,转码时也不会丢失。
我可以想象的唯一错误是算术错误,例如,计算中的浮点精度有限。我认为这不适用于FLAC或ALAC。
如果仅使用“心理听觉上”的无损编解码器,则这是不可能的。从心理声学的角度来说,无损意味着您无法区分原始版本和压缩版本,但是它们彼此之间有很大不同。MP3或MPEG-4 AAC使用各种心理声学技术来实现这一目标。因此,在进行转码时,无法重建原始版本,并且会遭受质量损失。
如果您要将ALAC转换为FLAC,ffmpeg
将是一个不错的选择,因为它是免费的,几乎可用于所有平台。
ffmpeg -i audio.m4a -c:a flac audio.flac
FFmpeg将毫无问题地读取ALAC。对于* nix系统,还有一个名为Convert to FLAC的脚本,它使整个过程更加容易。使用Bash,您还可以简单地将所有文件转换为一个目录:
for f in *.m4a; do ffmpeg -i "$f" -c:a flac "${f%.m4a}.flac"; done
注意:如果您收到有关ffmpeg
不推荐使用的消息,实际上并非如此,它仍然是一个积极开发的程序。但是,Ubuntu的软件包维护者只是决定切换到FFmpeg的Libav分支,从而为您提供avconv
而不是ffmpeg
。ffmpeg
因此,Ubuntu 上可用的版本已过时。您可以下载一个静态版本,也可以自己编译一个最新版本。请继续阅读以获取更多信息:谁能告诉我ffmpeg,libav和avconv之间的区别和关系
for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done
这在Linux上有效,但在Windows上也可以在Git bash中运行。
*** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
为了使用aconv进行转换,请改为执行以下操作: for f in *.m4a; do avconv -i "$f" "${f%.m4a}.flac"; done
如果您使用的是Mac(因为拥有ALAC文件),则还可以将开源软件Max用作不错的前端,以进行与ALAC / FLAC或许多其他格式之间的转换。