| CMIF video tools |
| ================ |
| |
| This directory contains Python and C programs to manipulate files |
| containing digitized video in the "CMIF video format". |
| |
| An introduction to using the basic tools is in the file "video.doc". |
| |
| A description of the video file format is in the file "cmif-film.ms" |
| (troff/nroff -ms input). |
| |
| |
| History |
| ------- |
| |
| We started this in October 1991, when we had a large framegrabber |
| board on loan from SGI for a few weeks: we developed a movie recording |
| program and added numerous features, including still frame capture and |
| synchronous sound recording using a second machine (the machine |
| holding the framegrabber board didn't have audio). |
| |
| During the following months, when we started using and processing the |
| recorded film fragments, the "CMIF video format" was revised several |
| times, and we eventually created an object-oriented interface for |
| reading and writing various incarnations of these files, called VFile. |
| (This module is also used by our flagship application, the CMIF |
| editor, not in this directory but in /ufs/guido/mm/.) |
| |
| When we got our own Indigo entry-level video board (in June 1992) and |
| a version of the Irix video library that supported capturing PAL |
| format (in August 1992), Sjoerd added an interface to the video |
| library to Python (sv) and Guido wrote Vrec.py (based upon a still |
| frame grabber by Sjoerd, in turn based upon SGI demo code in C) to |
| record a movie using it. Vrec was soon followed by modernized |
| versions of the other programs (Vinfo, Vplay, Vtime) and an |
| interactive editor (Vedit). Finally, VFile was rewritten for more |
| modularity, functionality and robustness, and various other tools were |
| added as needed. Also, new options were added to existing tools, and |
| several new video file formats were added. |
| |
| Guido van Rossum |
| Jack Jansen |
| Sjoerd Mullender |
| |
| |
| Overview of files |
| ----------------- |
| |
| cmif-film.ms description of the CMIF video file format (more than a |
| little out of date -- read the source for VFile for |
| more info about new file formats) |
| |
| |
| These are programs with a command line interface: |
| |
| Vrec.py record video movies using the Indigo video library and |
| board |
| |
| Vplay.py play video movies |
| |
| Vinfo.py show statistics on movies |
| |
| Vtime.py Copy a video file, manipulating the time codes (e.g. |
| faster/slower, or regenerate time codes, or drop |
| frames too close apart) |
| |
| Vcopy.py Universal video file copying tool. Can manipulate the |
| time codes, change the type, size, and packfactor. |
| Subsumes Vtime.py. |
| |
| Vmkjpeg.py compress an rgb or grey video file to jpeg[grey] format |
| |
| Vunjpeg.py expand a jpeg[grey] video file to rgb or grey format |
| |
| Vfix.py truncate the scan line width of a video file to |
| a multiple of 4 ('grey' images only) |
| |
| Vedit.py interactive video editing program (uses the FORMS library) |
| |
| Vsend.py unicast or multicast live video as UDP packets |
| |
| Vreceive.py receive transmissions from Vsend |
| |
| Vaddcache.py add a "cached index" to a video file, for faster playing |
| |
| Vrecb.py like Vrec.py but uses "burst capture" -- somewhat specialized |
| |
| Dsend.py like Vsend.py but sends screen snapshots (to Vreceive.py) |
| |
| DisplayVideoIn.py Like LiveVideoIn.py but reads screen snapshots |
| |
| rgb2video.py combine a sequence of rgb image files into a CMIF video file |
| |
| video2rgb.py split a CMIF video file into a sequence of rgb image files |
| |
| |
| These modules and files are used by the above programs: |
| |
| VFile.py classes that read and write CMIF video files |
| |
| Viewer.py two viewer classes used by Vedit |
| |
| LiveVideoIn.py live video input class, used by Vsend |
| |
| LiveVideoOut.py live video output class, used by Vsend and Vreceive |
| |
| imgconv.py Image conversion subroutines for rgb2video.py |
| |
| senddefs.py Defaults shared by Vsend and Vreceice |
| |
| watchcursor.py Generally useful module to define a watch cursor in GL |
| |
| VeditForm.fd FORMS' fdesign definition for Vedit's form |