如何填充ISO9660以适应提示表中的MODE2/2336数据轨道



首先是我的问题设置。

我收到了一张严重划伤的CD,任务是抢救数据并创建一个良好的工作副本。这张CD的顶层甚至不见了,但只在外缘的几个地方。我在网上找到了它的另一个副本,但在线副本缺少第一个音轨的2秒和数据音轨的300个最后扇区,所以它不是一个好的副本。

用cdrdao和Alcohol 120%阅读这张被刮伤的光盘,我得到了非常复杂的结果。数据轨道是好的,当场。通过使用cdparadisia,我能够从刮伤的CD中转储音频轨道,这些都处于完美的状态。为了比较两个副本的数据轨道的内容,我将它们转储到一个ISO9660文件中,结果发现额外的扇区是Joliet数据,但除此之外,两个副本中的所有文件都是相同的。CD偏执狂丢弃的原始CD中的音轨有在线副本所没有的缺失的2秒,并且它们没有cdrdao和A120给我带来的任何缺陷。

所以现在,我想把这些碎片组合在一起。我有最多的1:1拷贝的ISO9660部分的划痕光盘没有缺陷,以及没有缺陷和缺失部分的配乐。所以我做了这个提示:

FILE "track01.iso" BINARY
TRACK 01 MODE1/2048
INDEX 01 00:00:00
FILE "track02.cdda.wav" BINARY
TRACK 02 AUDIO
PREGAP 00:02:00
INDEX 01 00:00:00
FILE "track03.cdda.wav" BINARY
TRACK 03 AUDIO
INDEX 01 00:00:00

不过,这只是一个片段,只有问题的相关部分。

然而,我们知道混合模式CD不会将数据轨道保持在MODE1/2048中,相反,它们会选择类似MODE2/2352或MODE2/2336的模式。我能做些什么来制作一个提示表,它将保持完美的配乐和iso文件,但将数据轨道正确地投射到MODE2/2336中?我试着改变音轨的模式,并用cdemu安装提示表,但最终的光盘有一个无法访问的数据音轨。我是不是错过了什么?我需要将iso文件转换为mode2 iso吗?我该怎么做?

我试着改变提示表中的模式,但这只会让我得到一个不可用的数据轨道。

好吧,我似乎已经解决了。我需要建立一些东西。

数据磁道的原始模式是MODE2/2352,所以2352是扇区大小,不管你相信CDROM扇区大小的软件是什么。

接下来,在音轨1(数据(和音轨2(音频(之间存在2秒的预跳。我们知道CD音轨是44100Hz的16位立体声音轨。这意味着,每秒的音频是44100*16位*2通道=44100每秒*2字节每通道*2通道*44100。

有了这些知识,我们可以进行以下计算:mode's_sector_size (it is 2352) * size_of_data_track_in_sectors - (4*44100 (bytes per second) * 2 (seconds))

接收我们需要从cdrdao转储复制多少数据的字节大小,以接收完全适合我们的提示表数据轨道的数据轨道。

最新更新