Eu tenho procurado por um utilitário de comando / script que faz o oposto do bchunck, mas não consigo encontrar um.
O que o bchunck faz é tirar uma imagem de CD de modo misto no formato BIN / CUE e separá-la em um conjunto de faixas ISO e de música (CDR ou WAV). Eu quero usar uma ferramenta para reverter o processo.
Eu posso fazer isso com um utilitário do Windows como CDmage no WINE, ou seguindo este guia (também depende do WINE ou Windows), mas eu adoraria uma maneira de automatizar o processo e usá-lo nativamente no Linux.
Aqui está o que eu tentei até agora. Digamos que eu tenha uma imagem de teste de CD de modo misto com 1 trilha de dados e 4 faixas de música, IMAGE.bin e IMAGE.cue, geradas a partir de um CD físico:
cdrdao read-cd --datafile IMAGE.bin --driver generic-mmc:0x20000 --device /dev/cdrom --read-raw IMAGE.toc
toc2cue IMAGE.toc IMAGE.cue
Se eu fizer bchunk -v -w IMAGE.bin IMAGE.cue track
, ele gerará os seguintes arquivos:
track01.iso
track02.wav
track03.wav
track04.wav
track05.wav
Agora, tente reunir a imagem novamente:
Primeiro eu converto o track01.iso de volta para o formato BIN usando a ferramenta PowerISO Linux com./poweriso convert track01.iso -o IMAGE-NEW.bin -ot bin
. Observe que um IMAGE-NEW.cue é gerado, mas não contém nenhuma informação de faixa de música, por isso deve ser descartado, e o IMAGE.cue original deve ser usado no lugar.
Em segundo lugar, eu converto os arquivos WAV de volta para RAW e concateno-os para 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, juntamente com o IMAGE.cue original, parecem funcionar bem como uma imagem de CD de modo misto. No entanto, se eu fizer diff IMAGE.bin IMAGE-new.bin
, eles saibam que são diferentes, então não tenho certeza se esse método que eu criei é o correto, ou se isso é uma consequência de ambas as imagens serem geradas usando métodos diferentes.
Dito isto, se eu fizer bchunk -v -w IMAGE-NEW.bin IMAGE.cue track-new
e diferenciar todos os arquivos track
e track-new
, eles são de fato idênticos. Eu não tenho experiência suficiente com a comparação de binários para saber se estou fazendo certo e porque IMAGE.bin IMAGE-new.bin são diferentes.