将 FLAC 转换为 ALAC,保留标签 - 在脚本中

将 FLAC 转换为 ALAC,保留标签 - 在脚本中

我目前正在编写一个脚本来维护并行音乐库,因为我的设备不能播放 FLAC,但我更喜欢以这种格式存储我的音乐。但是,我在将 FLAC 转换为 ALAC 的部分遇到了一些问题。它目前只是调度 FFMPEG 来完成这项工作。但是,FFMPEG(版本 0.5.9)似乎无法保留标签!-map_meta_data infile:outfile 不起作用......-map_meta_data outfile:infile、-map_meta_data 0:0 或 -map_meta_data 0:0,s0(或类似的东西)也不起作用,所有这些都是我看到人们建议的。

所以……我现在正在寻找一个命令行程序(或 Python 库),它可以在 Linux 上将 FLAC 转换为 ALAC,同时保留标签数据。如果我必须在转换后复制标签,那也是可以接受的 - 但我也找不到解决方案。我试过 QLCLI,但在导入 Quod Libet 时似乎失败了。我试图让这一切在 Ubuntu 下运行。有什么建议吗?

答案1

当前的 ffmpeg(我撰写本文时为 2.0.2 版)支持 ALAC 的解码和编码。它默认从第一个输入文件复制全局元数据。

像这样调用它:

ffmpeg -i track01.flac -c:a alac track01.m4a

生成了一个已复制元数据的 ALAC 文件。

答案2

如果源音频文件有嵌入的封面,ffmpeg 会将其转换为视频,这可能不是您想要的。完整的命令是:

ffmpeg -i file.flac -vn -acodec alac file.m4a

在批处理模式下:

ls *flac | while read f; do
    ffmpeg -i "$f" -acodec alac -vn "${f[@]/%flac/m4a}" < /dev/null;
done

-vn开关将使 ffmpeg 忽略源文件的“视频”部分。标签将传输到目标文件,但我更喜欢使用 Picard 标记器重新标记新文件,使用强大的艺术家/作品/发行数据库(如 MusicBrainz)。

以下是更高级的技术:

https://avi.alkalay.net/2016/09/multimedia-linux-cli.html

相关内容