![Apple Lossless 音频可以无损转换为 FLAC 吗?](https://linux22.com/image/1287823/Apple%20Lossless%20%E9%9F%B3%E9%A2%91%E5%8F%AF%E4%BB%A5%E6%97%A0%E6%8D%9F%E8%BD%AC%E6%8D%A2%E4%B8%BA%20FLAC%20%E5%90%97%EF%BC%9F.png)
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 或许多其他格式的转换。