
Final Cut Pro, Apple's award-winning nonlinear editing software, supports
an open, standards-based XML Interchange Format—a feature with
"huge" implications for the film industry and for
developers who want to create new products to improve the editing process.
Veteran Hollywood film editor Walter Murch, who
turned industry heads by choosing to cut the $80 million picture Cold Mountain
on Final Cut Pro and several off-the-shelf Power Macs, says this about the software and its XML feature: "The notion of
nonproprietary software systems that can run on CPUs, without special hardware,
combined with Apple's courageous decision to use the XML protocol, which is wide
open to all third-party developers to interface with, is huge."
Final Cut Pro's XML Interchange Format is designed from the ground up
as a way of describing every aspect of a Final Cut Pro project—from clips, bins,
and sequences, to edits and transitions, effects, color correction settings and
keyframes. Using XML provides an open, transparent, plain text format that
anyone can read and manipulate with a wide range of tools. In contrast, other
systems often generate black or opaque binary
metadata.
This means that Final Cut Pro users can share
comprehensive information about a Final Cut Pro project with other nonlinear
editing systems—in fact, they can share that information with any
application or system that supports XML, including database systems, broadcast
servers, outlining software, HTML and Web authoring tools, and
graphics applications. (In Final Cut Studio 2, Apple itself uses the Interchange Format
to transfer media, clip, and sequence information between Final Cut Pro, Soundtrack Pro, and Color.
As well, Final Cut Server makes extensive use of the format.)
Version 5.1.2 of Final Cut Pro introduced support for AppleEvents that
external applications can use to directly import and export XML from Final Cut projects.
Combined with other new features, this means an external application can modify and
manage Final Cut Pro projects. (For sample code demonstrating this powerful capability see MovieAssembler.)
In short, the door is now open wide for developers who want to
create applications that are fully integrated with Final Cut Pro, or build
customized post-production pipelines that can save clients significant time and
money. Many already have.
How It Works
Creating an XML interchange format document with information about a project
or components of a project is a simple menu choice. In Final Cut Pro, you select
what you would like to describe in the format and then choose File >
Export > XML. See Figure 1: Exporting an XML Interchange Format
Document.
In a similar fashion, bringing an interchange format document into Final Cut Pro
4 is just a matter of choosing File > Import > XML.
Documents in the Final Cut Pro XML Interchange Format are stored on
disk as plain text documents that you can view, parse, and edit on any platform.
You can export an interchange format document from Final Cut Pro, import an
interchange format document into Final Cut Pro, and validate an interchange
format document using the interchange format DTDs (DMG).
NOTE: For complete details about the interchange format, see the document Final Cut Pro XML Interchange Format.

Figure 1: Exporting an XML Interchange Format Document.
Here's an example of a basic clip description in the interchange format.
Listing 1: Basic Clip Description
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xmeml>
<xmeml version="4">
<clip id ="Jeremy Solo">
<name>Jeremy Solo</name>
<duration>188</duration>
<rate>
<ntsc>TRUE</ntsc>
<timebase>30</timebase>
</rate>
<file id="Jeremy Solo1">
<name>Jeremy Solo1</name>
<pathurl>file://localhost/Jeremy%20Solo</pathurl>
<duration>188</duration>
</file>
</clip>
</xmeml>
An interchange format document can describe clips, projects, bins, sequences,
effects with keyframes, as well as media references and attributes. (Note that it is not a
replacement for the binary file for a Final Cut Pro project file, or a media
container format.)
Some Examples
An independent filmmaker in northern California has used the XML
capabilities in Final Cut Pro to build some useful tools for his work.
One example: the filmmaker uses Adobe Illustrator to create a complex line illustration
that becomes a motion path in Final Cut Pro, leveraging the power of one
application (Illustrator) into another (Final Cut Pro). He starts by creating
an Illustrator image that represents the motion path, as shown in Figure 2:
Creating a Motion Path in Illustrator.

Figure 2: Creating a Motion Path in Illustrator.
He then runs a custom AppleScript script that extracts the image information
from the Illustrator file and translates it into the XML Interchange Format.
Figure 3 shows an excerpt from the script:

Figure 3: Script to Translate into the XML Interchange Format.
Once the XML Interchange Format document is ready, he imports it into Final
Cut Pro and creates the motion path (Figure 4):

Figure 4: The Motion Path in Final Cut Pro.
Another example: Our filmmaker uses a FileMaker Pro database to streamline the
tedious subtitling process. He imports the translated text of the finished movie
into the database, and then organizes the text into subtitles (Figure 5):

Figure 5: Subtitles in a FileMaker Pro Database.
He then exports the database information in the XML format supported by
FileMaker Pro. Since this format differs from Final Cut Pro XML, he translates
the FileMaker Pro XML to Final Cut Pro XML using a custom XSLT template. He
imports the results into Final Cut Pro, where each subtitle appears as an
individual text generator in a sequence (Figure 6):

Figure 6: The Subtitles Appear as Text Generators.
The filmmaker then fine tunes individual subtitles as circumstances require (Figure 7):

Figure 7: An Individual Subtitle in the Canvas.
Our independent filmmaker says that the subtitling system he has created with the Final Cut Pro XML Interchange Format has saved him
"hundreds" of hours.
Think of the Possibilities
One way of thinking about the possibilities for creating viable (and profitable)
tools based on the XML Interchange Format is to be aware of the applications
already out there that support XML, and then to consider how they might
interact with Final Cut Pro (using Illustrator to create a complex motion path
in Final Cut Pro is an example.)
Here are a few applications to consider:
- Adobe Flash
- Adobe InDesign
- FileMaker Pro
- iTunes
- iPhoto
- Keynote
- OmniOutliner
As well, you might look at these database and web applications:
- Adobe Dreamweaver
- Microsoft SQL Server
- MySQL (with appropriate XML libraries)
- Oracle
Another way to think about the possibilities: look for bottlenecks in the
post-production workflow where the XML Interchange Format could help. Some
possibilities (mentioned in Chapter 4 of the Final Cut Pro XML Interchange Format (PDF) manual):
- Production companies often use a database program to track all film or video
shots during production. Exporting this database information to interchange
format documents could allow for the quick creation of video dailies from film,
HD, or SD footage. The interchange format document could edit together footage
into a sequence with text generator slates before each shot.
- A production house could archive all clips ever used in Final Cut Pro
projects in one central database by exporting each project as an interchange
format document and then translating the clip information in that document into
a central database.
- A production house could maintain version-tracking of sequences. For example, a
sequence could be exported and the interchange format document stored in a
central repository. Later, if an editor wants to see a previous version of a
sequence, she can retrieve the earlier version from the repository and import it
into Final Cut Pro.
- An editor could easily find and replace clips with other clips. For example, an
editor might want to change all medium shots of scene 10 to close up's.
- A tool could automatically generate Final Cut Pro sequences with foreground and
background plates in place, and the appropriate chromakey effect already applied
to the foreground elements, saving an editor significant time.
- A tool could randomly sort the clips in a sequence, instead of the pseudo-random
editing done by hand. For example, starting with 100 different clips, the tool
could generate 100 sequences, each with the clips in a different random order.
These are places for you to start thinking how you can take advantage of this
XML interchange capability in Final Cut Pro 4. It seems likely that striking
developments lie ahead as developers and their customers identify
innovative ways to augment the power of Final Cut Pro and streamline the
post-production workflow.
For More Information
Posted: 2007-06-19
|