blob: 01a01d21b5bb3ead0695b6a8783797bc49c7bc77 [file] [log] [blame]
Guido van Rossum7268c931992-08-18 21:11:18 +00001CMIF video tools
2================
Guido van Rossume4bddea1991-10-30 11:52:48 +00003
Guido van Rossum7268c931992-08-18 21:11:18 +00004This directory contains Python and C programs to manipulate files
5containing digitized video in the "CMIF video format".
6
7
8History
9-------
Guido van Rossumb2e82281992-08-18 16:01:19 +000010
11We started this in October 1991, when we had a large framegrabber
Guido van Rossum7268c931992-08-18 21:11:18 +000012board on loan from SGI for a few weeks: we developed a movie recording
Guido van Rossum3ea61611993-02-16 16:49:44 +000013program and added numerous features, including still frame capture and
14synchronous sound recording using a second machine (the machine
15holding the framegrabber board didn't have audio).
Guido van Rossumb2e82281992-08-18 16:01:19 +000016
Guido van Rossum7268c931992-08-18 21:11:18 +000017During the following months, when we started using and processing the
18recorded film fragments, the "CMIF video format" was revised several
19times, and we eventually created an object-oriented interface for
20reading and writing various incarnations of these files, called VFile.
21(This module is also used by our flagship application, the CMIF
22editor, not in this directory but in /ufs/guido/mm/.)
Guido van Rossumb2e82281992-08-18 16:01:19 +000023
Guido van Rossum7268c931992-08-18 21:11:18 +000024When we got our own Indigo entry-level video board (in June 1992) and
25a version of the Irix video library that supported capturing PAL
26format (in August 1992), Sjoerd added an interface to the video
Guido van Rossum9e3f3351992-09-29 13:40:47 +000027library to Python (sv) and Guido wrote Vrec.py (based upon a still
28frame grabber by Sjoerd, in turn based upon SGI demo code in C) to
29record a movie using it. Vrec was soon followed by modernized
Guido van Rossume1783321992-09-07 09:35:23 +000030versions of the other programs (Vinfo, Vplay, Vtime) and an
31interactive editor (Vedit). Finally, VFile was rewritten for more
Guido van Rossum9e3f3351992-09-29 13:40:47 +000032modularity, functionality and robustness, and various other tools were
Guido van Rossum3f3c0991992-12-24 11:39:36 +000033added as needed. Also, new options were added to existing tools, and
34several new video file formats were added.
Guido van Rossumb2e82281992-08-18 16:01:19 +000035
Guido van Rossum7268c931992-08-18 21:11:18 +000036 Guido van Rossum
37 Jack Jansen
38 Sjoerd Mullender
Guido van Rossume4bddea1991-10-30 11:52:48 +000039
Guido van Rossum96059b31991-11-04 14:31:31 +000040
Guido van Rossum7268c931992-08-18 21:11:18 +000041Overview of files
42-----------------
43
Guido van Rossum3f3c0991992-12-24 11:39:36 +000044cmif-film.ms description of the CMIF video file format (more than a
45 little out of date -- read the source for VFile for
46 more info about new file formats)
Guido van Rossume1783321992-09-07 09:35:23 +000047
48
49These are programs with a command line interface:
50
51Vrec.py record video movies using the Indigo video library and
52 board
53
54Vplay.py play video movies
55
56Vinfo.py show statistics on movies
57
Guido van Rossum3f3c0991992-12-24 11:39:36 +000058Vtime.py Copy a video file, manipulating the time codes (e.g.
59 faster/slower, or regenerate time codes, or drop
60 frames too close apart)
61
Guido van Rossum5e044b71993-02-25 14:20:13 +000062Vcopy.py Universal video file copying tool. Can manipulate the
63 time codes, change the type, size, and packfactor.
64 Subsumes Vtime.py.
Guido van Rossume1783321992-09-07 09:35:23 +000065
Guido van Rossum9e3f3351992-09-29 13:40:47 +000066Vmkjpeg.py compress an rgb or grey video file to jpeg[grey] format
67
68Vunjpeg.py expand a jpeg[grey] video file to rgb or grey format
69
Guido van Rossumff3da051992-12-09 22:16:35 +000070Vfix.py truncate the scan line width of a video file to
71 a multiple of 4 ('grey' images only)
72
Guido van Rossum3f3c0991992-12-24 11:39:36 +000073Vedit.py interactive video editing program (uses the FORMS library)
Guido van Rossume1783321992-09-07 09:35:23 +000074
Guido van Rossum67b48951992-09-24 12:54:35 +000075Vsend.py unicast or multicast live video as UDP packets
76
77Vreceive.py receive transmissions from Vsend
78
Guido van Rossum3f3c0991992-12-24 11:39:36 +000079Vaddcache.py add a "cached index" to a video file, for faster playing
Guido van Rossume1783321992-09-07 09:35:23 +000080
Guido van Rossum3f3c0991992-12-24 11:39:36 +000081Vrecb.py like Vrec.py but uses "burst capture" -- somewhat specialized
82
Guido van Rossum245be3a1993-02-18 18:09:18 +000083Dsend.py like Vsend.py but sends screen snapshots (to Vreceive.py)
84
85DisplayVideoIn.py Like LiveVideoIn.py but reads screen snapshots
86
87rgb2video.py combine a sequence of rgb image files into a CMIF video file
88
89video2rgb.py split a CMIF video file into a sequence of rgb image files
Guido van Rossum3ea61611993-02-16 16:49:44 +000090
Guido van Rossum3f3c0991992-12-24 11:39:36 +000091
92These modules and files are used by the above programs:
Guido van Rossume1783321992-09-07 09:35:23 +000093
94VFile.py classes that read and write CMIF video files
95
96Viewer.py two viewer classes used by Vedit
97
Guido van Rossum67b48951992-09-24 12:54:35 +000098LiveVideoIn.py live video input class, used by Vsend
99
100LiveVideoOut.py live video output class, used by Vsend and Vreceive
101
Guido van Rossum3ea61611993-02-16 16:49:44 +0000102imgconv.py Image conversion subroutines for rgb2video.py
103
Guido van Rossum3f3c0991992-12-24 11:39:36 +0000104senddefs.py Defaults shared by Vsend and Vreceice
Guido van Rossume1783321992-09-07 09:35:23 +0000105
Guido van Rossum3ea61611993-02-16 16:49:44 +0000106watchcursor.py Generally useful module to define a watch cursor in GL
107
Guido van Rossum3f3c0991992-12-24 11:39:36 +0000108VeditForm.fd FORMS' fdesign definition for Vedit's form