我想知道是否有人有一个干净、无痛的工作流程,可以将 FLAC 文件无损转码为等效的 ALAC?这应该是一个位完美的转换,这意味着它不应该很难,但是……它很难。
我为什么要这么做?(在操作系统的人把我活活吃掉之前)主要是因为我使用的音频应用程序(Serato Scratch Live)不支持 FLAC,尽管过去五年来用户不断催促,但很可能在一段时间内不会支持。然而,他们确实破解了 ALAC 支持
此外,让 iTunes 播放 FLAC 文件(并正确地将它们向下转换以有效利用 iPod 上的空间)似乎几乎是不可能的。
唯一的问题是我想保留一些奇怪、不寻常的元标签(BPM 和歌曲键),这些元标签重新生成起来有点麻烦。我对 Windows 或 Linux 上的任何内容都感到失望
谢谢
汤姆
答案1
在 Ubuntu 中,您可以打开终端,导航到相关目录,然后执行以下命令循环:
for f in *.flac; do ffmpeg -i "$f" -acodec alac "${f%.flac}.m4a"; done
- 将把
.flac
目录中的所有文件转换为.alac
文件,以位完美的方式执行。 ffmpeg
没有随 Ubuntu 打包,因此您需要从 repos 安装;但是,我不能肯定地说这会保留您的 BPM 标签信息。
此外,让 iTunes 播放 FLAC 文件(并正确地将它们向下转换以有效利用 iPod 上的空间)似乎几乎是不可能的。
有一个项目叫福禄克福马克.flac
这可能允许您在 iTunes 中播放文件。
至于如何进行转换以便高效使用 iPod,以下命令循环将发挥作用:
for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done`
- 您可能需要
--preset fast extreme
用较低的比特率选项替换
(更多的预设lame
)
答案2
对于 Windows 使用PowerShell
和ffmpeg
(基于@boehj 答案):
Ls -Recurse -Include *.flac | %{C:\path_to_ffmpeg\ffmpeg.exe -i $_.FullName -acodec alac ($_.DirectoryName+"\\"+$_.BaseName+'.m4a')}
答案3
答案4
在 Windows 中,您可以打开命令提示符并运行以下命令,将 FLAC 文件转换为不同驱动器上同一目录中的 ALAC(我喜欢的方式),使用qaac
和libFLAC
iTunes:
将当前工作目录更改为包含 flac 文件的源目录(
s:\music
此处用作示例)将所有文件夹复制到目标目录,包括专辑封面文件,文件名为(
folder.(jpg|png|gif)
):robocopy "s:\music" "d:\music" folder.jpg folder.png folder.gif /E
该选项
/E
包含空目录。如果您不想复制它们,请使用该/S
选项。用来
qaac
以“位完美”方式将该目录中的所有 FLAC 文件转换为另一个驱动器上的 ALAC 文件并保留大部分原始元数据:FOR /R %I IN (*.flac) DO qaac64 -A --copy-artwork -o "d:%~pI%~nI.m4a" "%I"
插入
IF NOT EXIST "d:%~pI%~nI.m4a"
上述命令后将DO
跳过转换目标目录中已存在的文件。
请注意
s:
源 ( ) 和目标 ( ) 驱动器上的目录名称d:
需要相同(否则您需要修改命令中的变量FOR
,qaac
不会为您创建目录)- 您需要切换到源目录(
s:\music
在上面的例子中)才能使命令起作用 - 目标目录(
d:\music
在上面的例子中)应该为空,以避免覆盖文件 SUBST
如果要在同一驱动器上创建 ALAC 文件,可以使用命令将目录映射到驱动器号- 您必须至少运行 2.57 版本
qaac
并使用适合您的 Windows 版本(32 位或 64 位)的二进制文件 qaac
需要在 WindowsPATH
变量中,否则你必须在FOR
上面的命令中包含其二进制文件的完整路径qaac
需要安装 iTunes 或 QuickTime 才能工作qaac
libFLAC
需要目录中有匹配的 DLL 副本才能读取 FLAC 文件,您可以在稀有器皿地点- iDevices 无法处理采样率高于 48,000 kHz 且采样大小高于 24 位的文件(2016 年初)。iTunes 不允许您将这些文件复制到您的设备,并警告您“未复制曲目,因为 iDevice 不支持该采样率”。使用
qaac
这些选项--rate 48000 --bits-per-sample 24
可以解决此问题,但请确保仅在实际的高清文件上使用这些选项,否则您将使所有文件变得臃肿而一无所获! - ALAC 文件将缺少 Apple iTunes 和 iDevices 所依赖的音量信息,这些信息用于其声音检查功能(将歌曲播放音量调整到相同级别)。可以使用
iTunes将信息添加到文件中(似乎只将音量信息存储在其库中),美乐家(商业软件),音量(商业软件)和不同平台上的许多其他工具 - 这不是同步工作流程:上述命令第二次运行会将您添加到源目录的 FLAC 文件添加到目标目录,但不会保持两个音乐目录同步(重命名的文件将导致具有不同名称的重复 ALAC 文件,已删除的文件不会从目标目录中删除,如果您使用
IF NOT EXIST
元数据,自上次运行以来的更改不会反映在 ALAC 文件中)