Xubuntu 17.10下shnsplit分割多FLAC文件失败求助
我来帮你搞定这个问题——你遇到的split point 0 is not greater than previous split point错误,本质是你的CUE文件在处理多FLAC文件时格式出了问题,导致shnsplit搞不清分割顺序了。
错误原因拆解
shnsplit是按顺序读取CUE里的分割点的,它要求每个后续的分割点必须比前一个大。但你的CUE里第二个音频文件的起始点是0,而前一个文件的结束点已经到了215871264,这在它看来是“倒着走”,自然会报错。问题出在CUE里多FILE条目的TRACK索引设置或者文件关联上。
一步步解决
先修正你的CUE文件格式
多FLAC文件的CUE必须遵循“每个FILE对应一组TRACK,且每组TRACK的起始INDEX要从00:00:00开始”的规则。比如正确的结构应该是这样:FILE "disc1.flac" WAVE TRACK 01 AUDIO INDEX 01 00:00:00 TRACK 02 AUDIO INDEX 01 03:15:22 FILE "disc2.flac" WAVE TRACK 01 AUDIO INDEX 01 00:00:00 TRACK 02 AUDIO INDEX 01 04:02:10对照你自己的CUE,要确保:
- 每个新的
FILE条目后,对应的TRACK的INDEX 01都重置为00:00:00 FILE后的文件名和你实际的FLAC文件完全一致(包括大小写、路径,不在同一目录的话要写绝对路径)
- 每个新的
用cuetools辅助检查和修正
先安装cuetools工具包,它能帮你检查CUE的语法错误:sudo apt update && sudo apt install cuetools然后检查你的CUE文件:
cuecheck your_album.cue它会明确指出哪里有格式问题,比如错误的INDEX、文件路径不对等。如果有自动修正的必要,也可以用
cueconvert生成修正后的CUE:cueconvert your_album.cue > corrected_album.cue重新执行分割命令
用修正后的CUE,结合shnsplit和cuetools的cuebreakpoints来处理多FLAC文件:cuebreakpoints corrected_album.cue | shnsplit -t "%n - %t" -o flac *.flac这里的
-t "%n - %t"是设置输出的音轨文件名格式(编号-标题),你可以根据自己的需求调整。
额外提醒
如果你的FLAC文件和CUE不在同一个目录,一定要在CUE里写清楚文件的绝对路径,或者执行命令时切换到它们所在的目录,避免路径识别错误。
内容的提问来源于stack exchange,提问作者Gin Gon

