Linux下CUE+(WAV/APE) 无损音频转换为带标签和封面的 FLAC 单曲指南
Mr.Cookie Lv1

intro

最近中午想着把多年来囤的各种音频资源统一转换保存,于是便有了这篇指南
本指南汇集了处理 CUE 文件编码、文件分割、标签写入和封面嵌入的完整流程,适用于 Arch Linux 环境下的命令行操作,当然别的发行版也可食用。


准备工具

请确保您的系统安装了以下软件包:

1
sudo pacman -S shntool flac cuetools

转换 CUE 文件编码 (解决中文乱码)

我们下载的大部分资源里的CUE 文件使用 GBK/GB2312 编码,必须先将其转换为 UTF-8,以防止 shntoolcuetag.sh 读取时出现乱码或失败。

1
iconv -f GBK -t UTF-8 "CDImage.cue" -o "CDImage_utf8.cue"

分割 WAV 文件并转换为 FLAC

使用 shntool 依据 UTF-8 编码的 CUE 文件,将大的 WAV 文件分割成单独的 FLAC 音轨,并将输出存放在 flac_tracks 目录中。

1
2
3
4
5
# 1. 创建目标目录
mkdir flac_tracks

# 2. 执行分割和转换
shntool split -f "CDImage_utf8.cue" -d "flac_tracks" -t "%n - %p - %t" -o flac "CDImage.wav"

写入完整的元数据标签

上一步的 shntool 可能未能完整写入所有标签。使用 cuetag.sh 脚本,根据 CUE 文件提供的精确信息,为 flac_tracks 目录中的所有 FLAC 文件写入完整的 Vorbis Comment 标签(如专辑、艺术家、标题、轨道号)。

1
cuetag.sh "CDImage_utf8.cue" flac_tracks/*.flac

批量嵌入封面图片
使用 metaflac 工具,将您的封面图片文件(例如 cover.jpg)批量嵌入到所有 FLAC 文件的元数据中。

1
2
# 假设封面图片文件名为 cover.jpg
metaflac --import-picture-from="cover.jpg" flac_tracks/*.flac

验证

您可以使用以下命令检查任一音轨的标签和封面是否成功写入:

1
2
3
4
# 检查标签
metaflac --list --block-type=VORBIS_COMMENT flac_tracks/01\ 天使与魔鬼.flac
# 检查封面
metaflac --list --block-type=PICTURE flac_tracks/01\ 天使与魔鬼.flac

That’s all,enjoy it!