QuickTime Movie Writer

Author: Wayne Rasband (wsr at nih.gov)
Requires: QuickTime and QuickTime for Java
Limitations: Does not work with 64-bit versions of Java. File names cannot be longer that 32 characters.
Bugs: Saving in a folder with a name longer than 31 characters can cause a QuickTime -47 (fBsyErr) error.
Source: QuickTime_Writer.java
Installation: Drag and drop QuickTime_Plugins.jar onto the "ImageJ" window and this plugin will be installed as the File>Save As>QuickTime Movie command. This JAR file also installs three other QuickTime plugins: Note that this JAR file is included with the Mac OS X version of ImageJ, version 1.34 and later.
Description: Saves a stack as a QuickTime movie. Requires both QuickTime and QuickTime for Java. Both are preinstalled on Macs. Windows users must install QuickTime 7 and copy QTJava.zip to the Java extensions folder (ImageJ\jre\lib\ext).

A dialog box allows the user to specify the type of compression used, the quality, and the frame rate. The following compression methods (codecs) are supported:

  • Cinepak - a favorite in the early 90's and supported by many other players, but quite obsolete today
  • Animation - meant for synthetic images (i.e., graphics), inappropriate for digitized images
  • H.263 - pretty good videoconferencing codec, enjoys wide support (it's the only useful video codec in JMF)
  • Sorenson - long a QT favorite because of high compression and attractive playback
  • Sorenson 3 - an improved version of the Sorenson codec; requires QuickTime 5
  • MPEG-4 - massive compression; requires QuickTime 7
With hyperstacks (4D and 5D stacks), if T>1, it writes the current t-series (e.g., the "Mitosis" sample 5D stack), with the channels merged. If T=1 and Z>1, it writes the z-series (e.g., the "Confocal Series" and "Organ or Corti" sample 4D stacks), with the channels merged. If T=1 and Z=1, it writes the channels (e.g., the "Neuron" sample image).

This plugin is based on the VideoSampleBuilder example in Chapter 8 of QuickTime for Java: A Developer's Notebook by Chris Adamson. The codec descriptions are from the MakeCSequence example in the Making Media from Scratch article, also by Chris Adamson.

History: 2000/10/20: First version
2005/10/11: Works with Java 1.4 on Mac OS X
2005/10/13: Fixed byte ordering bug on Windows
2005/11/09: Up to 8 times faster
2005/11/22: Compression ratio calculated correctly; options dialog displayed before save as dialog
2007/05/22: Displays error if file name longer than 32 characters
2008/05/14: Minimum frame rate no longer limited to 0.1 fps
2009/05/07: Works with hyperstacks
2010/05/19: Preserves overlays
See Also:
  • The File>Save As>AVI command, which creates QuickTime compatible files, using either no compression or M-JPEG compression
  • The File>Save As>Gif command, which saves an 8-bit stack as an animated GIF
  • The QT Stack Writer plugin, which is faster and uses the standard QuickTime compression dialog