[How To] Rip VCD on Linux

I have always had problems while playing VCDs on my Linux machine. The VCD file system is still not supported by the Linux kernel. After browsing the net and trying out various options, I will enlist the following which I find most useful.

Using cdrdao

This is the most flexible command and copies the contents of VCD in the .bin and .toc format. This can be played by mplayer, or can be burnt into another cd. First we need to determine the device name for the cd drive. We do this either by:

parted -l


cdrdao scanbus

Suppose the device is /dev/sr0. We then need to unmount this device:

umount /dev/sr0

Next, the following command will extract the contents of the VCD into .bin and a .toc files:

cdrdao read-cd –read-raw –read-subchan rw_raw –datafile fileName.bin –device /dev/sr0 –driver generic-mmc-raw fileName.toc

We can directly play the .bin file using mplayer. In case we want to create an iso from the .bin and .toc, we can use the bchunk. In order to install it, just do:

yum install bchunk

bchunk works only with cue. So, you need to convert the .toc to .cue:

toc2cue fileName.toc  fileName.cue


bchunk -v -r fileName.bin fileName.cue fileName

This will give you .iso

Using mencoder

mencoder vcd://2 -oac lavc -ovc lavc -o fileName.avi

Using vcdxrip

vcdxrip -i /dev/sr0 -v -p -t 1 –nofiles –nosegments

Here i denotes the mount point of the CDROM drive,  t denotes the Track Number. This way, a VCD can be ripped from a Linux machine. I have tested this on Fedora (10) and it works great.

Further Reading

The following sites have more detailed info about the above:


Leave a Reply

Your email address will not be published. Required fields are marked *