Apple Lossless 音频可以无损转换为 FLAC 吗?

Apple Lossless 音频可以无损转换为 FLAC 吗?

Apple Lossless 音频文件(ALAC)可以转换为 FLAC 音频文件且不损失保真度吗?

答案1

是的,由于两者在数学上都是无损的,因此转换也是无损的。

原因是 FLAC/ALAC 文件解码后,信号总能重建为原始格式。因此,它们是等效的,您在转码时不会遇到任何损失 — 即使转码多次也是如此。

我能想到的唯一错误是算术错误,例如计算中浮点精度有限。我认为这不适用于 FLAC 或 ALAC。

如果您仅使用“心理声学”无损编解码器,则这是不可能的。心理声学意义上的无损意味着您无法区分原始版本和压缩版本,但它们彼此之间有很大不同。MP3 或 MPEG-4 AAC 使用各种心理声学技术来实现这一点。因此,在转码时,无法重建原始版本,并且您会体验到质量损失。


如果你想将 ALAC 转换为 FLAC,ffmpeg会是一个不错的选择,因为它是免费的并且适用于几乎所有平台。

ffmpeg -i audio.m4a -c:a flac audio.flac

FFmpeg 可以毫无问题地读取 ALAC。对于 *nix 系统,还有一个名为转换为 FLAC这使得整个过程更加简单。使用 Bash,您也可以简单地转换单个目录中的所有文件:

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

笔记:如果您收到一条关于ffmpeg已弃用的消息,事实并非如此——它仍然是一个积极开发的程序。然而,Ubuntu 的软件包维护者刚刚决定切换到 FFmpeg 的 Libav 分支,因此为您提供avconv而不是ffmpeg。因此,Ubuntu 上可用的 版本ffmpeg 已过时。您可以通过以下方式获取最新版本下载静态构建版本或者自己编译。请继续阅读以了解更多信息:谁能告诉我 ffmpeg、libav、avconv 之间的区别和关系

答案2

对于 Windows CMD,您可以执行此操作。

@for /R %%x in (*.m4a) do ffmpeg -i "%%x" -acodec flac "%%~dpnx.flac"

(批处理脚本)

(这将执行递归(每个文件夹以及其运行所在的文件夹))

答案3

对于 Windows 中的 Powershell(使用 ffmpeg),您可以执行以下操作将 alac 转换为 flac:

Get-ChildItem . -filter *.m4a| ForEach-Object { ffmpeg -i "$_" -acodec flac "$($_.basename).flac" }

反过来也可以这样转换为 alac

Get-ChildItem . -filter *.flac | ForEach-Object { ffmpeg -i "$_" -acodec alac $($_.basename).m4a" }

答案4

如果您有 Mac(因为您有 ALAC 文件),您还可以使用开源软件 Max 作为良好的前端来执行 ALAC/FLAC 或许多其他格式的转换。

相关内容