Read or Copy a VCD in Ubuntu

with 4 Comments

Like many people in the Philippines who switch to Ubuntu, I was confused how to read (play) or copy my VCD movie collection. Here is my solution.

Background

The VCD or Video Compact Disk is still alive and well in the Philippines. Almost everywhere you go, there are stores selling movies on VCD’s. In my quest to find an acceptable alternative to When?Doze (Microsoft Windows). I switched one workstation to Ubuntu 10.04 LTS or Lucid Lynx. It was not long before all seven computers on our network were running Ubuntu. The problem was that none of them could read or play a VCD. But I found a solution.

Learning

I tried a few things…

First I have one computer that will still start (duel boot) into Windows. At first I would copy a VCD .dat file to the Windows hard drive, then switch to Ubuntu and rename the file to .mpg. That “worked” (kind of, a little bit) but it had two drawbacks.

  1. I always needed to reboot into windows to copy files. Since I want to completely eliminate Windows, this was not a final solution.
  2. The resulting file is a bit deformed and from time to time splashes the screen with “digital snow” – a bunch of distracting little square dots.

Second, I really tried making vcdimager and vcdxrip work in Ubuntu with basically a total failure.

VCD Problem

The problem is that the VCD format is owned by Microsoft (Correction: Microsoft does not own the VCD format.  What was intended was that Microsoft owns the propitiatory VCD code in Windows.  Frankly, after using Ubuntu for some time, I would not want to go back to any Microsoft product as it is a waste of my time and effort.)  and Microsoft do not like to share their toys with Open Source (like Ubuntu).

Basically there are limits to the size of files you can put on an (audio) CD. So a VCD takes an .mpeg file and cuts it up into a bunch of little files that can be stuffed into the audio tracks (ever notice that movies often have file names like music01.dat ???). Then to make it more confusing it adds one (hidden) master file – the dat file – to tell where the pieces are, and in what order.

All rather messy!

It all sounds rather like a Bond, James Bond ~ 007 movie! But to be fair … Remember this was done before CD Data disks. They could have switched and just put .mpeg files on CD Data disks… but most VCD manufactured had already signed contracts with by that time so we, the users, were stuck with the VCD format.  No wonder DVD’s were invented as an open source standard!

On windows when you copy the .dat file, the copy tries to gather all the pieces together in one file. However, during the copy the “switch” between small files on the cd drive is slow, thereby writing “digital snow” to the copy.

CDFS How To

CDFS stands for Compact Disk File System. It basically unlocks the format of a VCD (or any CD) and allows Ubuntu to read it like it was any file.  Because the read pauses during the switch, like it really should, you do not get “digital snow!”

Likewise CDFS “knows” that something in the VCD format is actually a .mpeg file, not .dat and not audio tracks! So it results in a beautiful .mpeg file that runs on Ubuntu10.04 LTS, Lucid Lynx, perfectly using the GNOME Mplayer. (These .mpeg files also run as well, or better, under Windows too!) Here is my two stage process for getting this done…

1) Install module-assistant

  • Open a terminal and install module-assistant by typing:
    $ sudo apt-get install module-assistant
  • Then type:
    $ sudo module-assistant prepare
    after that will appear some information, just choose “yes” for the configuration

2) Install cdfs

  • On your terminal type
    $ sudo apt-get install cdfs-src
  • Then use module-assistant to install the module
    $ sudo module-assistant
  • Follow these instructions:
    a.Choose SELECT then OK
    b.Choose cdfs then OK
    c.Choose BUILD then OK
    d.Choose OK for the installation
    e.Then Exit

Copy the Movie

Here is the method I use to get beautiful .mpeg files.

  1. Insert your VCD, wait for you to be able to see it in Places (the automatic mount) and unmount it from your terminal by typing:
    $ sudo umount /dev/cdrom /cdrom/
    (Or maybe…
    $ sudo umount /dev/cdrom /media/cdrom0/ )
  2. Then mount it again using cdfs by typing:
    $ sudo mount -t cdfs /dev/cdrom /cdrom/
    (Or maybe…
    $ sudo mount -t cdfs /dev/cdrom /media/cdrom0/ )

Now you can see the file in Places. For me I have to click on file system, then click on cdrom. Others have told me they needed to click file system, then click on media, then click on cdrom.

Tips!

  1. In my home folder I use the folder that is automatically created called Videos.
  2. Inside of the Video folder, I first create subfolder with the name of the movie – that makes it easy to find later.
  3. I start with disk #2 and copy the first file videocd-1.mpeg (or the largest file), then rename it to videocd-2.mpeg ~ That allows me to then copy the videocd-1.mpeg from disk #1 into the same folder without renaming it.

For other systems, even Windows and most DVD/VCD players, you can just copy (burn) this folder to a normal Data CD or DVD and it will play nicely in just about any machine! I can put about 3-4 movies on on DVD that the kids can play on a portable DVD player!

Playback in Ubuntu

I playback with the GNOME MPlayer.

Playback in Ubuntu 10.04 LTS (Lucid Lynx). Nothing could be easier. In Places, I right mouse click on the folder (the one I made with the name of the movie in it). Select “Open with GNOME MPlayer” and enjoy the movie.

The Future

With the price of USB external hard drives falling (P2,600 for a 500 gig drive at this writing), I plan to put the movie collection on this, plugged into an old computer set up for server mode. This should allow all the computers on our network to view the movies from across our network. Three of our work stations are for our kids!

That will mean no more broken, scratched, peanut butter and jelly finger print damaged, or destroyed CD’s and DVD!

My conservative estimate is about 400 VCD’s per 500 gig drive.

It also means I could add a “master VCD drive” to be plugged into my workstation, and put into storage all these shelves of VCD disks! Life is sweet!

4 Responses

  1. abhilash
    | Reply

    HI,

    Iam a newbie to linux and tried the same and build failed. Any idea why ? log is below.

    checking for processor type… “unknown”
    │ checking for cdfs version… 2.4.20-a
    │ configure: creating ./config.status
    │ config.status: creating Makefile
    │ make[2]: Entering directory `/usr/src/modules/cdfs/2.4′
    │ gcc -Wall -O2 -DLINUX -DCONFIG_CDFS_VERSION=\”2.4.20-a\”
    │ -I/usr/src/linux-headers-3.0.0-13-generic/include -c audio.c -Wall
    │ In file included from audio.c:26:0:
    │ cdfs.h:25:28: fatal error: linux/autoconf.h: No such file or directory
    │ compilation terminated.
    │ make[2]: *** [audio.o] Error 1
    │ make[2]: Leaving directory `/usr/src/modules/cdfs/2.4′
    │ make[1]: *** [binary-modules] Error 2
    │ make[1]: Leaving directory `/usr/src/modules/cdfs’
    │ make: *** [kdist_build] Error 2

    • Lan
      | Reply

      fatal error: linux/autoconf.h: No such file or directory

      It sound like there is a problem with your linux headers…

      Autoconf.h is in
      /usr/src/linux-headers-3.0.0-1-amd64/include/generated/autoconf.h

      Of course you header number and cpu type may be different.

      Try backing up to a older header version and see if that works. If it does, or if you just want to, reload your current linux headers.

      One thing I do not like about CDFS is that every time I get new linux headers, I need to reload it. So keep a copy of the load instructions handy. On the other hand, I cannot find anything that works better for what I need! I am just coping VCD movies to a hard drive and it works perfectly. For play back I use the GNOME MPlayer. The kids love having all the movies on the hard-drive, no more CD’s to mess with.

      One last word, be very careful with the steps. If you skip a step it messes up big time!

  2. anonymous
    | Reply

    Microsoft does not own the VCD format specification.

    • Lan
      | Reply

      @anonymous – Thanks for pointing out this little typo. Microsoft does not, indeed own the VCD format specification. They do however own the drivers inside of windows and the article was amended to reflect that.

      Nonetheless, the point is the same, with more and more people looking for a replacement for the problems of both Windows and Microsoft – and with Ubuntu’s market share steadfastly growing, it is important to note that what can be done in Windows, can usually be accomplished with minimal effort in Ubuntu. Furthermore, Ubuntu has the benefit of being cutting edge, offering much more in the way of future compatibility and functionality.

      Thanks again for pointing out this typo!

Leave a Reply