我一直在寻找一个与 bchunck 执行相反操作的命令实用程序/脚本,但似乎找不到。
bchunck 的作用是获取 BIN/CUE 格式的混合模式 CD 映像并将其分离为一组 ISO 和音乐曲目(CDR 或 WAV)。我想使用工具来逆转这个过程。
我可以使用 WINE 下的 CDmage 等 Windows 实用程序来执行此操作,或者按照以下步骤操作本指南(也依赖于 WINE 或 Windows),但我希望找到一种方法来自动化该过程并在 Linux 上本地使用它。
这是我到目前为止尝试过的方法。假设我有一个混合模式 CD 测试映像,其中包含 1 个数据轨道和 4 个音乐轨道,即 IMAGE.bin 和 IMAGE.cue,由物理 CD 生成:
cdrdao read-cd --datafile IMAGE.bin --driver generic-mmc:0x20000 --device /dev/cdrom --read-raw IMAGE.toc
toc2cue IMAGE.toc IMAGE.cue
如果我这样做,bchunk -v -w IMAGE.bin IMAGE.cue track
它会输出以下文件:
轨道01
曲目02.wav
轨道03.wav
轨道04.wav
曲目05.wav
现在尝试将图像重新组合起来:
首先,我使用PowerISO Linux 工具使用 。请./poweriso convert track01.iso -o IMAGE-NEW.bin -ot bin
注意,虽然生成了 IMAGE-NEW.cue,但是它不包含任何音乐曲目信息,因此应将其丢弃,而使用原始 IMAGE.cue。
其次,我将 WAV 文件转换回 RAW 并将它们连接到 IMAGE-NEW.bin:
avconv -i trackC02.wav -f s16le -ar 44100 -acodec pcm_s16le - >> IMAGE-NEW.bin
avconv -i trackC03.wav -f s16le -ar 44100 -acodec pcm_s16le - >> IMAGE-NEW.bin
avconv -i trackC04.wav -f s16le -ar 44100 -acodec pcm_s16le - >> IMAGE-NEW.bin
avconv -i trackC05.wav -f s16le -ar 44100 -acodec pcm_s16le - >> IMAGE-NEW.bin
IMAGE-NEW.bin 与原始 IMAGE.cue 一起作为混合模式 CD 映像似乎工作正常。但是,如果我这样做,diff IMAGE.bin IMAGE-new.bin
它会输出它们是不同的,所以我不确定我想出的这种方法是否正确,或者这是两个映像使用不同方法生成的结果。
话虽如此,如果我这样做bchunk -v -w IMAGE-NEW.bin IMAGE.cue track-new
并比较所有track
和track-new
文件,它们确实是相同的。我没有足够的比较二进制文件的经验来知道我这样做是否正确以及为什么 IMAGE.bin 和 IMAGE-new.bin 不同。
更新:我现在明白问题是什么了:bchunk 无法正确拼接我的 IMAGE.bin,因为我的 IMAGE.cue 每个 TRACK 有多个 INDEX 条目。当 bchunk 进行拼接时,它只考虑每个 TRACK 的最后一个 INDEX 条目。否则,此方法是正确的,可以尝试重建之前已翻录的 IMAGE.bin。如果您之前使用过 bchunk 并丢失了原始 IMAGE.bin,则很有可能无法重建它,因为您可能丢失了信息。例如,如果您使用 asunder 来翻录音轨,它们将被正确拼接,并且您将能够重建 IMAGE.bin,只要您使用无损格式来存储音轨即可。