1992-08-18 21:11:18 +00:00
|
|
|
CMIF video tools
|
|
|
|
================
|
1991-10-30 11:52:48 +00:00
|
|
|
|
1992-08-18 21:11:18 +00:00
|
|
|
This directory contains Python and C programs to manipulate files
|
|
|
|
containing digitized video in the "CMIF video format".
|
1992-08-18 16:01:19 +00:00
|
|
|
|
|
|
|
|
1992-08-18 21:11:18 +00:00
|
|
|
History
|
|
|
|
-------
|
1992-08-18 16:01:19 +00:00
|
|
|
|
1992-08-18 21:11:18 +00:00
|
|
|
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
|
1993-02-16 16:49:44 +00:00
|
|
|
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).
|
1992-08-18 21:11:18 +00:00
|
|
|
|
|
|
|
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
|
1992-09-29 13:40:47 +00:00
|
|
|
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
|
1992-09-07 09:35:23 +00:00
|
|
|
versions of the other programs (Vinfo, Vplay, Vtime) and an
|
|
|
|
interactive editor (Vedit). Finally, VFile was rewritten for more
|
1992-09-29 13:40:47 +00:00
|
|
|
modularity, functionality and robustness, and various other tools were
|
1992-12-24 11:39:36 +00:00
|
|
|
added as needed. Also, new options were added to existing tools, and
|
|
|
|
several new video file formats were added.
|
1992-08-18 16:01:19 +00:00
|
|
|
|
1992-08-18 21:11:18 +00:00
|
|
|
Guido van Rossum
|
|
|
|
Jack Jansen
|
|
|
|
Sjoerd Mullender
|
1991-10-30 11:52:48 +00:00
|
|
|
|
1991-11-04 14:31:31 +00:00
|
|
|
|
1992-08-18 21:11:18 +00:00
|
|
|
Overview of files
|
|
|
|
-----------------
|
|
|
|
|
1992-12-24 11:39:36 +00:00
|
|
|
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)
|
1992-09-07 09:35:23 +00:00
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
1992-12-24 11:39:36 +00:00
|
|
|
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 selectively write frames from one movie file to another
|
|
|
|
usage: Vcopy [-t type] [-m treshold] [-a] infile outfile
|
|
|
|
commands: 'n' gets next frame; 'w' writes current frame
|
1992-09-07 09:35:23 +00:00
|
|
|
|
1992-09-29 13:40:47 +00:00
|
|
|
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
|
|
|
|
|
1992-12-09 22:16:35 +00:00
|
|
|
Vfix.py truncate the scan line width of a video file to
|
|
|
|
a multiple of 4 ('grey' images only)
|
|
|
|
|
1992-12-24 11:39:36 +00:00
|
|
|
Vedit.py interactive video editing program (uses the FORMS library)
|
1992-09-07 09:35:23 +00:00
|
|
|
|
1992-09-24 12:54:35 +00:00
|
|
|
Vsend.py unicast or multicast live video as UDP packets
|
|
|
|
|
|
|
|
Vreceive.py receive transmissions from Vsend
|
|
|
|
|
1992-12-24 11:39:36 +00:00
|
|
|
Vaddcache.py add a "cached index" to a video file, for faster playing
|
|
|
|
|
|
|
|
Vrecb.py like Vrec.py but uses "burst capture" -- somewhat specialized
|
1992-09-07 09:35:23 +00:00
|
|
|
|
1993-02-18 18:09:18 +00:00
|
|
|
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
|
1993-02-16 16:49:44 +00:00
|
|
|
|
1992-12-24 11:39:36 +00:00
|
|
|
|
|
|
|
These modules and files are used by the above programs:
|
1992-09-07 09:35:23 +00:00
|
|
|
|
|
|
|
VFile.py classes that read and write CMIF video files
|
|
|
|
|
|
|
|
Viewer.py two viewer classes used by Vedit
|
|
|
|
|
1992-09-24 12:54:35 +00:00
|
|
|
LiveVideoIn.py live video input class, used by Vsend
|
|
|
|
|
|
|
|
LiveVideoOut.py live video output class, used by Vsend and Vreceive
|
|
|
|
|
1993-02-16 16:49:44 +00:00
|
|
|
imgconv.py Image conversion subroutines for rgb2video.py
|
|
|
|
|
1992-12-24 11:39:36 +00:00
|
|
|
senddefs.py Defaults shared by Vsend and Vreceice
|
1992-09-07 09:35:23 +00:00
|
|
|
|
1993-02-16 16:49:44 +00:00
|
|
|
watchcursor.py Generally useful module to define a watch cursor in GL
|
|
|
|
|
1992-12-24 11:39:36 +00:00
|
|
|
VeditForm.fd FORMS' fdesign definition for Vedit's form
|