Я искал служебную утилиту / скрипт, который делает противоположное bchunck, но, похоже, не может найти его.
Что делает bchunck, это получение CD-образа смешанного режима в BIN / CUE и отделить его от набора ISO и музыкальных дорожек (либо CDR, либо WAV). Я хочу использовать инструмент для изменения процесса.
Я могу сделать это с помощью утилиты Windows, такой как CDmage под WINE, или после этого руководства (также зависит от WINE или Windows), но мне бы понравилось способ автоматизировать процесс и использовать его на Linux.
Вот что я пробовал до сих пор. Предположим, у меня есть тестовое изображение с смешанным режимом CD с 1 треком данных и 4 музыкальными дорожками IMAGE.bin и IMAGE.cue, сгенерированными с физического компакт-диска:
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 он выдает следующие файлы:
track01.iso
track02.wav
track03.wav
track04.wav
track05.wav
Теперь, чтобы попытаться сместить изображение вместе:
Сначала я конвертирую track01.iso в формат BIN, используя это руководство с ./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 отличается.
UPDATE: теперь я понять, в чем проблема: bchunk не соединяет мой IMAGE.bin правильно, потому что у моего IMAGE.cue есть несколько записей INDEX на TRACK. Когда bchunk выполняет сплайсинг, он учитывает только последнюю запись INDEX каждого TRACK. В противном случае этот метод является правильным, чтобы попытаться перестроить IMAGE.bin, который ранее был разорван. Если вы использовали bchunk раньше и потеряли оригинальный IMAGE.bin, есть хорошие изменения, которые вы не сможете его восстановить, поскольку у вас может быть потерянная информация. Если вы использовали, например, для разметки аудиодорожек, они правильно спланированы, и вы сможете перестроить IMAGE.bin, если вы использовали формат без потерь для хранения аудиодорожек.