This module is a first shot at incorporating QuickTime(tm) into AVS as a method for producing convenient, compact, and high quality video segments. QuickTime(tm) is rather convenient since there is likely to be more support on other systems, and there is a growing base of QuickTime(tm) cheaply available for the Macintosh. This code currently requires, the QuickTime Movie Exchange Toolkit, which is available from Apple, Inc, and a C++ compiler (you also need the C++ compiler to build the QuickTime(tm) libraries. In the future we hope to be able to distribute binaries of this module for a group of AVS platforms. However, there are some licensing problems to work out at the moment. Requirements: QuickTime Movie Exchange Toolkit C++ compiler (g++ is acceptable, although I have used AT&T c++ 2.0) Building: Modify the Makefile. Be sure to change the QINC and QLIB to point to the proper locations. Change CCPLUS to the name of your c++ compiler. Run make. When building it is likely that you will get warning messages about certain AVS calls being defined implicitly. This is all right, since the AVS header files do not apparently define all the calls (why?!?!?) Send all suggestions and bug reports to: chas@ra.nrl.navy.mil NAME Write MooV - Create a QuickTime(tm) movie SUMMARY Name Write MooV Type Render Inputs Image - field 2D 4-vector byte REQUIRED Sound - field 1D 1-vector byte OPTIONAL Parameters Name Type Default Choices Compression choice JPEG None:JPEG:Video:RLE Quality integer 3 0 4 Frame Rate integer 10 1 60 KeyFrame Rate integer 20 1 60 DESCRIPTION This modules write QuickTime(tm) MooV files for use with the Machintosh personal computer, or any QuickTime player. The module works in a manner similar to write seq. The input images are saved to a single file using the QuickTime(tm) Movie Exchange Toolkit library routines. The file should be transfered to the Macintosh in binary or 'raw data' mode. After transfering the file, set the File Type (using ResEdit or something similar) to MooV and the Creator Type to TVOD. The file should be playable and editable as a QuickTime(tm) movie. Currently the Video and Animation compression methods are not supported. To use these modes, create MooV files using the None compression method, and regenerate them using one of the QuickTime editing programs such as Adobe Premiere, or one of the programs supplied on the QuickTime Developer's CD. INPUTS image - field 2D 4-vector byte This is the standard image in from the geometry viewer or similar module Sound - field 1D 1-vector byte This is currently a rather crude interface to the audio abilities of QuickTime(tm). The sample rate is determined from the extents (which are measured in seconds) / number of samples. The values of the sample are 0 to 255, where 128 is voice coil at rest, 0--voice coil is maximum retraction and 255 is maximum extension. The Read AIFF module creates data in this format. This input represents the audio for the entire MooV, not each frame. Sound is only read once! PARAMETERS Compression (choice) This controls the compression method used in writing the MooV file. Currently only JPEG, and None are supported. Note: JPEG is slow to decompress/view on the Macintosh side but None creates rather large files. There is clearly a need to have the other methods available. Quality (integer) This controls the quality of the compression produced by JPEG (and Video mode, when it exists). JPEG and Video compression are both "lossy", and this control can used minimize this loss if necessary. If a good deal of banding or blockiness occurs in your MooV files, you need to increase this parameter. Frame Rate (integer) This is the speed that your MooV file will play back. For certain kinds of compression and file sizes, frames may be skipped to maintain this frame rate. 60 fps is impossible unless your image is very very small. 10 fps is a good number for average size images (320x400) running with None compression (on a Quadra anyway). (i think) KeyFrame Rate (integer) This controls how often key frames are written. A key frame is written in its entirity (using the compression method selected) and then KeyFrame Rate number of frames are stored using a difference from previos frame method. In short, the more motion/change per frame, the lower the KeyFrame Rate. OUTPUTS None EXAMPLE NETWORKS The following network could be used to make a fly around of a volume: READ VOLUME | GENERATE COLORMAP | |_________ | | | COLORIZER | ANIMATED FLOAT | | | EULER TRANSFORM | |_________ | | | TRACER | WRITE MOOV RELATED MODULES write_rle_seq(1), write_hdf_image(1), read_aiff(1) SEE ALSO QuickTime Developer's Guide/Kit