From video tape to the www

From video tape to the WWW

The video clips on my demo page were created using a Silicon Graphics Indigo 2, with Cosmo Compress hardware jpeg encoder.

capture digitizes to file. It must use the jpeg hardware, to allow 768x576x25 capture.

dmplay can play the captured video file.

dminfo shows its statistics.

dmconvert -v -f mpeg1s can be used to convert this jpeg file into an mpeg 1 system stream. 5 Minutes of video take approximatly 12 hours of cpu time on my indigo 2.
dmconvert -v -f mpeg1s -p audio -p video,engine=sw,cropl=32,cropr=32,cropt=24,cropb=24
or if you dare
dmconvert -v -f mpeg1s -p audio -p video,cropl=64,cropr=64,cropt=28,cropb=68
brings you the 640x480 pixel area inside the 768x576 image that an ordinary TV-Set would show. This is the preferred method, if readability of slides matters.

movieplayer is theoretically able to play the mpeg system stream, but its cpu usage is too high for my indigo 2.

showmetv (available for sun workstations) plays the very same clip on an ultra sparc with 60% cpu usage. Showme plays on an 8 bit colormap.

mtv (available from for most UNIXes) plays the very same clip on an ultra sparc with 85% cpu usage. Mtv plays in TrueColor and can be run as a netscape plugin.

Usually we do not simply want to make mpeg's from directly captured video. We rather want to process our video material with some video editing software/hardware. At our department we use AVID Media Suite Pro, running on an Indigo 2. Too bad, that AVID did not bother to provide us with any export feature for movies...

The internal file format of media suite is omf. Omf files can contain video and audio clips and editing lists, and have lots of bells and whisles. As no other program appears to import omf files, we used to export our videos onto an SVHS-PAL VCR, which can playback them for re-capture. The quality loss during this process is significant.
Here I present my own converter omf2sgi that understands a very limited but sufficient subset of the omf file format: The video and audio files must be the output of a "streamline" process. The converter produces sgi digital media files (.mv) that can be played with movieplayer, dmplay (or be processed by dmconvert, as shown above).

Output must be a seekable file, as omf2sgi writes in two passes. Of the input files, only the audio file needs to be seekable. Thus the video file can e.g. be read directly from a backup tape.

Performance of the converter was measured on local disks of a Sun Enterprise server. Output is written at more than 2 MB per second (during first pass). A 12 Minutes clip in full PAL quality (786x576, 25fps) was converted. A 65 MB audio .omf file and a 1.2 GB video .omf file were combined into a 1.35 GB .mv file. Generating this file took almost 19 Minutes (for both passes). Dmconvert creates a 129 MB mpeg movie from that source in 15 hours.

Omf2sgi can take optional start and end frame numbers and thus convert a subclip of the original material. Thus we can parallelize the dmconvert process and we can avoid hitting a 2.1 GB file size limit as well.

An entire lecture hour at the WISO institute was converted this way.

Alternatively here is a fast but complicated way to create someting that is not even a correct avi file.

For the reverse process, disassembling .avi files, I have a tiny patch for xanim-2.70.64 that allows you to dump a series of raw PPM images (and audio tracks) to disk. As xanim understands many .avi dialects (including indeo and cinepak) as well as a number of other file formats, this is very useful. Be warned: when reading mpeg files, xanim handles only I-frames.

For converting your favourite .avi into our AVIDs .omf format, I use my patched xanim with the following command:

xanim +V10 +v '+ZF|pnmtosgi -rle > out/favourite.%03d.rgb' +Ze favourite.avi

AVID Media Suite can import the generated SGI image series under "Import->Image_file" by entering the filename "favourite.rgb"; it is funny, but it interpolates the numbers.