Extract Songs from DVD

John L. Templer green_tiger at comcast.net
Thu Oct 23 22:07:26 PDT 2008


Polytropon wrote:
> On Thu, 23 Oct 2008 02:35:25 -0400, "John L. Templer" <green_tiger at comcast.net> wrote:
>> Polytropon wrote:
>>> 	% dd if=/dev/acd0t01 of=track01.cdr bs=2352
>> Very cool!  I have a few questions though.  I notice this doesn't work
>> for my Plextor CD writer.
> 
> What, dd doesn't work from Plextor writer? I had (or, still have)
> a Plextor CD writer which is SCSI, so I just have to change the
> command in order to read from the correct device, which is /dev/cd0
> for the first SCSI CD drive:
> 
> 	% dd if=/dev/cd0t01 of=track01.cdr bs=2352
> 
> Of course, you would have to change other commands in order to get
> this correct, for example:
> 
> 	% cdcontrol -f /dev/cd0 info
> 
> 
> 
>> I assume this is because CD and DVD drives
>> have different drivers?
> 
> Maybe, but I think these basic things rely on the same commands
> internally.
> 
> 
> 
>> Also, does this use libparanoia or something
>> similar to extract "recalcitrant" tracks?
> 
> No, dd reads block-wise. There's dd_rescue which is able to read
> from defectively manufactured media (we call them "Un-CDs" or
> "Un-DVDs" in Germany).
> 
> Another option, by the way, is to use cdrdao. It has the read
> command in combination with a paranoia level switch which can be
> adjusted in order to read mentioned media. As far as I remember,
> you need to have the atapicam facility in your kernel (custom
> compile kernel or module) in order to access ATAPI devices just
> like SCSI devices.
> 
> 	% camcontrol devlist
> 
> will then show you which device equals /dev/cd0, e. g. 0,0,0
> (1st SCSI controller, 1st device, 1st LUN).
> 
> 
> 
> If I did misunderstand the question, just post another one. :-)
> (English is not my native language.)

Actually, I was referring to having individual device files for each
track on the CD.  When I put an audio CD in the Plexwriter CD writer, it
doesn't create the device files for the tracks.  However when I put it
in the DVD reader it does create acd0t01 through acd0t11, or however
many tracks are on the CD.  My Plexwriter is SCSI, but the DVD drives
are IDE.

Under Solaris x86 or Ubuntu Linux I have to use an application like
cdrecord or soundjuicer to extract the audio tracks.  These applications
bypass the device files and go straight to the SCSI interface layer.
libparanoia is a library that handles the tricky bits of reading the
data off the CD.  Just using dd to copy the data from the device file
often results in corrupted data.  I was wondering if the BSD kernel (or
devd or whatever) uses a similar method of handling all the different
variations that audio format CDs have.


More information about the freebsd-questions mailing list