我如何用球杆分割一个flac?

xen*_*ide 85 command-line gui audio flac

我有一张完整的专辑 flac 和一个提示文件。我如何将其拆分为每首曲目的 flac?

我是 KDE 用户,所以我更喜欢 KDE/Qt 方式。我也想查看命令行和其他 GUI 答案,但它们不是我的首选方法。

小智 99

Shnsplit 可以直接读取提示文件,这也意味着它可以访问提示文件中的其他数据(不仅仅是断点)并生成比split-*.flac以下更好的文件名:

shnsplit -f file.cue -t %n-%t -o flac file.flac
Run Code Online (Sandbox Code Playgroud)

当然,如果原始 flac 文件在同一目录中,这会使使用 cuetag.sh 变得更加困难。

  • 其他 debian 用户:`sudo apt-get install cuetools shntool` (28认同)
  • 您可能还想用 `cuetag file.cue [0-9]*.flac` 标记文件 (22认同)
  • 我还需要:`sudo apt-get install flac` (11认同)
  • cuetools 已经依赖于 flac,所以…… (2认同)
  • 在 Debian 10 上,24 位 flac 存在一个错误。它不会分裂。但它在 16 位文件上运行良好。 (2认同)

Kam*_*bus 24

我只知道一种 CLI 方式。您将需要cuetools 和shntool。

cuebreakpoints file.cue | shnsplit -o flac file.flac
cuetag.sh file.cue "split-*".flac
Run Code Online (Sandbox Code Playgroud)

  • 感谢这个 Kambus。我一直在使用`cuebreakpoints file.cue | shnsplit -o flac file.flac` 很长一段时间。第二位将有很大帮助! (2认同)

小智 23

Flacon是一个直观的开源 GUI,它完全可以做到这一点:将 FLAC 与 CUE 分开。

Flacon 从一个包含整个音乐专辑的大音频文件中提取单个曲目,并将它们保存为单独的音频文件。为此,它使用来自相应 CUE 文件的信息。

除其他外,它支持:

支持的输入格式:WAV、FLAC、APE、WavPack、True Audio (TTA)。

支持的输出格式:FLAC、WAV、WavPack、AAC、OGG 或 MP3。

CUE 文件的自动字符集检测。

要使用它,您只需要*.cue使用 Flacon打开文件。然后它应该自动检测大*.flac文件(如果没有,您可以手动指定),然后您应该选择 Flac 输出格式(并可选择配置编码器),并开始转换过程。

火焰瓶 v5.4.0

  • 我不喜欢将 UI 用于我可以在终端上做的事情,但我正在为一张专辑而苦苦挣扎,这是拆分文件的唯一方法。你现在应该喝啤酒 (2认同)

小智 8

如果正在使用高质量的文件,shnsplit 会很高兴地出错

shnsplit: error: m:ss.ff format can only be used with CD-quality files
Run Code Online (Sandbox Code Playgroud)

幸运的是,flac 二进制文件支持 --skip=mm:ss.ss 和 --until=mm:ss.ss 所以脚本可以使用像这样的提示断点:

[..]
time[0]="00:00.00"
c=1
for ts in $(cuebreakpoints "${cue_file}"); do
    time[${c}]=${ts}
    c=$((c+1))
done
time[${c}]='-0'
for ((i=0;i<$((${#time[@]}-1));i++)); do
    trackno=$(($i+1))
    TRACKNUMBER="$(printf %02d ${trackno})"
    title="$(cueprint --track-number ${trackno} -t '%t' "${cue_file}")"
    flac --silent --exhaustive-model-search --skip=${time[$i]} --until=${time[$(($i+1))]} --tag=ARTIST="${ARTIST}" --tag=ALBUM="${ALBUM}" --tag=DATE="${DATE}" --tag=TITLE="${title}" --tag=TRACKNUMBER="${TRACKNUMBER}" "${aud_file}" --output-name="${TRACKNUMBER}-${title}.flac"
done
Run Code Online (Sandbox Code Playgroud)


xen*_*ide 3

k3b如果您在文件类型设置中设置了要使用的提示,k3b则在打开提示文件时会自动分割文件,并允许您重新翻录。