blob: 6abe698795b8c71499f9372b1e822bf706087bf2 [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
Guido van Rossum85f7bd51993-02-25 16:10:16 +00007An introduction to using the basic tools is in the file "video.doc".
8
9A description of the video file format is in the file "cmif-film.ms"
10(troff/nroff -ms input).
11
Guido van Rossum7268c931992-08-18 21:11:18 +000012
13History
14-------
Guido van Rossumb2e82281992-08-18 16:01:19 +000015
16We started this in October 1991, when we had a large framegrabber
Guido van Rossum7268c931992-08-18 21:11:18 +000017board on loan from SGI for a few weeks: we developed a movie recording
Guido van Rossum3ea61611993-02-16 16:49:44 +000018program and added numerous features, including still frame capture and
19synchronous sound recording using a second machine (the machine
20holding the framegrabber board didn't have audio).
Guido van Rossumb2e82281992-08-18 16:01:19 +000021
Guido van Rossum7268c931992-08-18 21:11:18 +000022During the following months, when we started using and processing the
23recorded film fragments, the "CMIF video format" was revised several
24times, and we eventually created an object-oriented interface for
25reading and writing various incarnations of these files, called VFile.
26(This module is also used by our flagship application, the CMIF
27editor, not in this directory but in /ufs/guido/mm/.)
Guido van Rossumb2e82281992-08-18 16:01:19 +000028
Guido van Rossum7268c931992-08-18 21:11:18 +000029When we got our own Indigo entry-level video board (in June 1992) and
30a version of the Irix video library that supported capturing PAL
31format (in August 1992), Sjoerd added an interface to the video
Guido van Rossum9e3f3351992-09-29 13:40:47 +000032library to Python (sv) and Guido wrote Vrec.py (based upon a still
33frame grabber by Sjoerd, in turn based upon SGI demo code in C) to
34record a movie using it. Vrec was soon followed by modernized
Guido van Rossume1783321992-09-07 09:35:23 +000035versions of the other programs (Vinfo, Vplay, Vtime) and an
36interactive editor (Vedit). Finally, VFile was rewritten for more
Guido van Rossum9e3f3351992-09-29 13:40:47 +000037modularity, functionality and robustness, and various other tools were
Guido van Rossum3f3c0991992-12-24 11:39:36 +000038added as needed. Also, new options were added to existing tools, and
39several new video file formats were added.
Guido van Rossumb2e82281992-08-18 16:01:19 +000040
Guido van Rossum7268c931992-08-18 21:11:18 +000041 Guido van Rossum
42 Jack Jansen
43 Sjoerd Mullender
Guido van Rossume4bddea1991-10-30 11:52:48 +000044
Guido van Rossum96059b31991-11-04 14:31:31 +000045
Guido van Rossum7268c931992-08-18 21:11:18 +000046Overview of files
47-----------------
48
Guido van Rossum3f3c0991992-12-24 11:39:36 +000049cmif-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)
Guido van Rossume1783321992-09-07 09:35:23 +000052
53
54These are programs with a command line interface:
55
56Vrec.py record video movies using the Indigo video library and
57 board
58
59Vplay.py play video movies
60
61Vinfo.py show statistics on movies
62
Guido van Rossum3f3c0991992-12-24 11:39:36 +000063Vtime.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)
66
Guido van Rossum5e044b71993-02-25 14:20:13 +000067Vcopy.py Universal video file copying tool. Can manipulate the
68 time codes, change the type, size, and packfactor.
69 Subsumes Vtime.py.
Guido van Rossume1783321992-09-07 09:35:23 +000070
Guido van Rossum9e3f3351992-09-29 13:40:47 +000071Vmkjpeg.py compress an rgb or grey video file to jpeg[grey] format
72
73Vunjpeg.py expand a jpeg[grey] video file to rgb or grey format
74
Guido van Rossumff3da051992-12-09 22:16:35 +000075Vfix.py truncate the scan line width of a video file to
76 a multiple of 4 ('grey' images only)
77
Guido van Rossum3f3c0991992-12-24 11:39:36 +000078Vedit.py interactive video editing program (uses the FORMS library)
Guido van Rossume1783321992-09-07 09:35:23 +000079
Guido van Rossum67b48951992-09-24 12:54:35 +000080Vsend.py unicast or multicast live video as UDP packets
81
82Vreceive.py receive transmissions from Vsend
83
Guido van Rossum3f3c0991992-12-24 11:39:36 +000084Vaddcache.py add a "cached index" to a video file, for faster playing
Guido van Rossume1783321992-09-07 09:35:23 +000085
Guido van Rossum3f3c0991992-12-24 11:39:36 +000086Vrecb.py like Vrec.py but uses "burst capture" -- somewhat specialized
87
Guido van Rossum245be3a1993-02-18 18:09:18 +000088Dsend.py like Vsend.py but sends screen snapshots (to Vreceive.py)
89
90DisplayVideoIn.py Like LiveVideoIn.py but reads screen snapshots
91
92rgb2video.py combine a sequence of rgb image files into a CMIF video file
93
94video2rgb.py split a CMIF video file into a sequence of rgb image files
Guido van Rossum3ea61611993-02-16 16:49:44 +000095
Guido van Rossum3f3c0991992-12-24 11:39:36 +000096
97These modules and files are used by the above programs:
Guido van Rossume1783321992-09-07 09:35:23 +000098
99VFile.py classes that read and write CMIF video files
100
101Viewer.py two viewer classes used by Vedit
102
Guido van Rossum67b48951992-09-24 12:54:35 +0000103LiveVideoIn.py live video input class, used by Vsend
104
105LiveVideoOut.py live video output class, used by Vsend and Vreceive
106
Guido van Rossum3ea61611993-02-16 16:49:44 +0000107imgconv.py Image conversion subroutines for rgb2video.py
108
Guido van Rossum3f3c0991992-12-24 11:39:36 +0000109senddefs.py Defaults shared by Vsend and Vreceice
Guido van Rossume1783321992-09-07 09:35:23 +0000110
Guido van Rossum3ea61611993-02-16 16:49:44 +0000111watchcursor.py Generally useful module to define a watch cursor in GL
112
Guido van Rossum3f3c0991992-12-24 11:39:36 +0000113VeditForm.fd FORMS' fdesign definition for Vedit's form