Home       About       Products       Vault       Store       Media        Press
    
    Pooch
    
QuickTime

QuickTime Video Compression Acceleration using Clusters

As video codecs in QuickTime necessarily become more advanced to achieve higher compression ratios to accommodate viewer expectations, they also become more compute hungry, therefore making the content take longer to produce. To help meet this demand, we developed a way to accelerate the compression of QuickTime movies from common desktop video editing applications like iMovie, Final Cut Express, and Final Cut Pro using the Export Component feature of QuickTime.

This tool is for:

  • video podcasters who want to accelerate their compression times with fast turnaround, especially those that publish videos in multiple formats (H.264, MPEG-4, etc.) and multiple sizes (1280 x 720, 640 x 480, etc.), so they can get their content on the Internet for many device types (Apple TV, iPod, web pages)
  • online educators producing training or courseware in the form of video posted via the Internet
  • archivers of content sampled from older analog video media who want to preserve such assets digitally in a modern codec
  • video content producers who want to publish themselves online for posting directly on a web page or via other video sharing web sites

The new Pooch QuickTime Exporter plug-in automatically parallelizes video compression from video-editing applications, including high-definition. It extracts the source video data, partitions them, then assigns other nodes their data. The compressed video data is then returned for sorting and assembly into the final movie. Its turnaround time is faster than batch-scheduling because it accelerates the encoding of each movie.

Pooch QuickTime Exporter

Power Mac Cable Lights Power Mac
 


Dashboard
Spotlight
Download Pooch
Scripting & Automator
Mathematica
Parallel Apps
Parallelization Tutorial
Parallel Zoology Tutorial

Features:

Support for H.264 multipass video encoding and sound compression codecs including AAC, Lossless, MACE, A-Law, µ-Law, QDesign Music, and IMA. When possible, output movies are automatically flattened with fast start for easy Internet streaming distribution. Presets pop-up menu for typical H.264 and MPEG-4 settings (including those appropriate for the Apple TV) with AAC default audio compression.

The ability to target multiple sized output (1280 x 720, 960 x 540, 640 x 480, etc.) as well as compression types simultaneously. Vector-accelerated deinterlacing of video for progressive displays. Optimized video message-passing that adaptively chooses video data configuration depending on frame settings and source format, including high-definition.

See the Version History below for what's new in this version.

Parallelization of Other Applications

For further parallelization of iMovie, iDVD, Final Cut Pro, or DVD Studio Pro, please fill out our petition page to encourage its developers to parallelize their code or you may base your messages on our petition.

Download

Pooch QuickTime Exporter zip file Pooch QuickTime Exporter component - v1.3.1
(292 kB .zip download) Requires Pooch (download here)
Requirements
  • Intel-based and/or PowerPC-based Macintoshes
    connected with a 100BaseT Ethernet switch or faster (Gigabit for HD)
  • 2 GB of RAM installed on source machine
  • OS X 10.4 or later
  • QuickTime 7 or later
  • Pooch v1.8.1 or later.
   
By downloading this software, you and all subsequent users of the software agree to not decompile, reverse engineer, disassemble, modify, or create derivative works of said software. Patent pending. All rights reserved.


Installation

  1. After downloading the component, drag the PoochQuickTimeExporter.component to the QuickTime folder of the Library folder of your boot drive.
  2. Install Pooch on this Mac and a local cluster of Macs.
 

Steps to Use (iMovie)

After editing your movie, select "Share..." from the Share menu.

Select the QuickTime from the toolbar that appears and choose "Expert Settings" from the "Compress movie" pop-up menu.


Select "Pooch QuickTime Movie" from the Export pop-up menu of the save dialog that appears.

Optionally, you may edit the compression options via the "Options..." button.

Click "Save" to begin compressing your movie.


In Final Cut Express / Final Cut Pro, use the Export > Using QuickTime Conversion... feature from the File menu or the contextual menu for sequences and clips, then select the "Pooch QuickTime Movie" from the Format pop-up menu. For other video-editing applications, use their corresponding Export feature, and the steps are similar.


Using the "Options..." button invokes the Settings window for the Pooch QuickTime Exporter, where settings such as the video frame size and the number of nodes on the cluster it will attempt to access.

A new feature is the ability to compress multiple movies, each with its own compression and frame size (new in v1.2) setting permutation, at the same time. The + button adds a setting and the - deletes a setting. Both the video and sound compression settings of each movie can be set independently of each other, except for the frame rate, taken from the first setting. Subsequent movies have an integer ("1", "2", "3", ...) appended to its name.

Why is this feature interesting? Let's say you don't know exactly what compression settings are best for your movie. Rather than compress with one setting, then try another, and another, you can "bracket" your movie and try several variations of compression settings all at the same time. Once the compression of the movies are done, choose the best. Alternatively, if you wanted to produce your movie in a variety of formats, like H.264 and MPEG-4 and MPEG-2 or 1280 x 720 and 960 x 540 and 480 x 272 and others for a video podcast, you can produce them all at once from your source video.

Why is this approach an advantage? The primary bottleneck of the compression process is how long it takes to get the raw video data out of the host application and send it to all the compute nodes. Once there, the raw data can be reused for movie format after movie format. Again, it compresses all the data in pieces, then gathers and adds the compressed data for the correct format to the correct QuickTime movie.

Processing video data from Final Cut Express or Final Cut Pro on a Mac cluster Processing video data from iMovie on a Mac cluster

The Pooch QuickTime Export plug in should now be asking Pooch for cluster resources and using them to compress your movie, faster than it would be with just one processor.

The PoochMPI Toolkit for Mathematica video web- and podcast was generated using the above technology.

Benchmarks

Below are graphs of performance encoding three H.264 multipass frame-reordering compressed QuickTime movies from SD and HD source material. The black line is using the bundled QuickTime Movie exporter of QuickTime 7.1.6 under Mac OS X 10.4.9, while the blue is using the Pooch QuickTime Exporter on the same system. In some cases, the a small cluster can produce H.264 compressed movies faster than real-time (>1.0 below). Your results will vary.

compressed frame rate divided by playback frame rate
Processing Core Count
  
Processing Core Count

Source Material: 28 minutes of DV 480i, 29.97 fps, cut in Final Cut Express HD 3.5.1

Target: Three 28 minute movies deinterlaced, H.264, multipass, frame-reordering, automatic data rate, 29.97 fps, 640 x 480 (for Apple TV), at High, Medium, and Low Quality

Cluster: Power Mac G5DP/2.7GHz + Mac Pro 8-Core Intel/3 GHz + Power Mac G5DP/2.0GHz with Netgear GS116 Gigabit Switch

Source Material: 11 minutes of HDV 1080i, 29.97 fps, cut in Final Cut Express HD 3.5.1

Target: Three 11 minute movies deinterlaced, H.264, multipass, frame-reordering, automatic data rate, 29.97 fps, 960 x 540 (for Apple TV), at High, Medium, and Low Quality

Cluster: Mac Pro 8-Core Intel/3 GHz + Power Mac G5DP/2.7GHz + Power Mac G5DP/2.0GHz with Netgear GS116 Gigabit Switch

Digg this

For Best Results

In most video codecs, leave the Data Rate setting to Automatic, instead using the Quality setting to regulate file size. Also, set the Key Frame rate to be very large (> 100), and explicitly set the frame rate (in setting #0). Lots of RAM (> 2 GB) is also desirable.

Known issues

Adobe After Effects fails to fully recognize this exporter. If you encounter other issues, please describe the hardware, network, and OS configuration of your cluster when you contact us.

Version History

1.3.1 - Compatibility with iMovie '08 (v7.x) and iMovie '09 (v8.x), adapting to its Export requirements. (Many thanks to Edward Agabeg of Apple!) Completely rewritten and modularized audio conversion management code, which reads once from the source and writes to many output files, to fix sound hiccups and other issues.

1.3 - Pooch node play list access in code and in user interface so that the exporter can use custom node lists specified by the user in the Network Scan window. Adjusted blacker-than-black offset to match TV standards. Limited frames per chunk according to memory limits. Implemented automatic launch retry. Tickle Power Manager to prevent screen saver and system sleep during processing. Correctly calculate frame shift count when source frames are of unequal duration. Adjusted leap sample offsets and lengths when source and destination time codes are out of sync. Better optimized allocations for low-memory conditions. Known issue: Does not function with iMovie '08 (v7.x).

1.2 - The ability to target multiple sized output (1280 x 720, 960 x 540, 640 x 480, etc.) as well as different compression types simultaneously. Vector-accelerated deinterlacing of video for progressive displays. Optimized video message-passing that adaptively chooses video data configuration depending on frame settings and source format, including high-definition. Internal restructuring for greater flexibility and revised user interface. Improved adaptation to low-memory and slow-node conditions. Displays source frame rate diagnositics. Press Release at WWDC 2007

1.1 - Presets pop-up menu for typical H.264 and MPEG-4 settings (including those appropriate for the Apple TV) with AAC default audio compression. Revised fault-tolerance schemes to detect and handle low memory and dead node conditions, including failing safe when no other nodes are found. Default settings to Medium H.264 and AAC. Reorganized internal structure improving reliability. Atom container storage fixes. Opens the web site when Pooch is not found.

1.0 - First official release

0.95 Beta - New features: Support for H.264 multipass video encoding and sound compression codecs including AAC, Lossless, MACE, A-Law, µ-Law, QDesign Music, and IMA. When possible, output movies are automatically flattened with fast start for easy Internet streaming distribution. Renovated, more versatile user interface. Improved fault tolerance for cluster startup or node failure or user cancel events. More accurate progress bar behavior. Storage of multiple settings into atom containers. Fixes for echoing audio and automatic frame rate detection and when filenames already exist for multiple movies.

Successfully tested with: QuickTime Player Pro, iMovie, Final Cut Express, Final Cut Pro

0.9 Beta - First public version - Supports compressing most video codecs in parallel on a Mac cluster

New features: The ability to compress multiple movies, each with its own compression setting permutation, at the same time. This feature is useful for "bracketing" video compression settings or producing multiple formats at once.

Known issues: We are investigating why using H.264 multipass gives playback problems, but single-pass mode and other codecs are okay. In one instance, we've seen 16-bit 44.1 kHz stereo sound give audio hiccups, but other settings are okay. The multiple movies feature may have a problem if files with the same names already exist.




© Copyright 2001-2012 Dauger Research, Inc. All rights reserved. PO Box 3074, Huntington Beach, CA 92605 USA