VCD_COMMANDER, Automatic photo (S)VCD creation tool

(c) 2003 Simon M Harrison (smh @

License: You are free to use this program for any purpose as long as you keep my copyright notice visible in the sources and documentation for your application.


VCD Commander aims to be for the VCD what Norton Commander is for the hard disk: A means of rendering a directory structure into a hierarchy of VCD menus with minimal user intervention. Whilst there are many VCD authoring programs which allow one to define a specific layout, I wanted a program that allowed me to archive photos and videos with minimal hassle straight from the hard-disk. Since most people categorise things on the hard disk in terms of directory names I saw no reason why the same shouldn't be true of VCDs.



* - Previous versions are likely to work.


The latest release of VCD_COMMANDER is 0.02. It can be downloaded here.

How to use:

  1. Look at the first part of to change any of the settings. The defaults will be good enough for 95% of users.
  2. Put all the jpg files in sub-directories under 'cdroot'. (or whatever you set g_info["cdroot"] to).
  3. Run 'python build'.
  4. Inspect photo.xml to see if it looks ok (only worthwhile for small sets of images).
  5. Build the bin and cue files with 'vcdxbuild photo.xml'
  6. Write the cue file to cdrom with 'cdrdao videocd.cue'

Command-line options can be displayed by running the program without arguments, ie:

bash-2.05b$ python

VCD_COMMANDER, Automatic photo (S)VCD creation tool, v0.02, 28 April 2003

(c) 2003 Simon M Harrison (smh @
License:  You are free to use this program for any purpose as long
as you keep my copyright notice visible in the sources and documentation for your application.

usage: [build|clean|docs]
	build - creates photo.xml for vcdxbuild
	docs - create html documentation file vcd_commander.html
	clean - tries to clean up temporary files

Some points

To save time, running the script a second time will not re-generate the mpg stills so long as last modified time of the picture is older than that for the corresponding MPG.

Note that changing the directory structure requires you to re-make certain hidden (dot-file) images and currently this might not happen automatically.

Navigating the menus

Each directory is presented onscreen as a paginated list of subdirectories. The appropriate subdirectory can be selected with the number keys (1-9)

  1. If the subdirectory is a leaf directory (ie no subdirectories) this will go to the relevant subdirectory and play a slideshow of the images.
  2. If the subdirectory is a non-leaf a new menu will appear.

Pressing play when a menu is visible will play the contents of the current directory. Actually I never got this working although in theory it should according to vcdimager docs. As a work-around, if you are on the last paginated list of subdirectories the 'next' key will play the slideshow of the current directory.

I figure any empty subdirectory is there for a reason, otherwise you would have deleted it, so attempting to play an empty dir shows an "Empty Directory" message. This page intentionally left blank...

While playing slideshows, the prev and next keys advance or rewind. Pressing the '1' key should go up to the parent menu Pressing the '2' key will pause the slideshow. Pressing '2' again will un-pause it. When in paused mode, the next and prev keys will not take you out of paused mode. Only pressing '2' will re-invoke the timeout. Pressing the '3' key will loop an individual slide. Note that this is pretty pointless unless the 'slide' is actually an mpg. Pressing '3' again takes you back to an un-paused slideshow.

Access control

Access control is on a per-directory basis, controlled by the hidden file '.vcd_pin_txt' found in each directory. The file should contain a pin consisting of 4 digits in the range 1-9. The file can contain fewer than 4 digits, but if longer, extra digits will be ignored. (see the source code to change the number 4).


clean doesn't quite.



Simon Harrison, smh @ (remove spaces)

v0.02, 28 April 2003