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