苹果无损音频能否在不损失保真度的情况下转换为FLAC?


19

苹果无损音频文件(ALAC)可以在不失保真的情况下转换为FLAC音频文件吗?


2
简短回答“是”(如slhck所说)。问题是,您是在寻找一种实现此目的的工具,还是询问是否可以将无损格式无损转换为另一种无损格式?
Journeyman Geek

Answers:


37

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

这样做的原因是,当对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而不是ffmpegffmpeg 因此,Ubuntu 上可用的版本已过时。您可以下载一个静态版本,也可以自己编译一个最新版本。请继续阅读以获取更多信息:谁能告诉我ffmpeg,libav和avconv之间的区别和关系


2
基于superuser.com/a/277358/45914,您可以执行以下操作来转换整个目录:例如, for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done 这在Linux上有效,但在Windows上也可以在Git bash中运行。
Ruud 2012年

1
如@RuudvA所述,使用ffmpeg进行转换虽然有效,但给我的消息是:*** 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
Duncan Lock

XLD是OSX的另一个好选择。
Arran Cudbard-Bell

3

对于Windows CMD,您可以这样做。

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

(批处理脚本)

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



1

对于Powershell中的Windows(使用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" }

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.