Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

Final Cut Pro Opens up with XML Interchange Format

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.

Exporting an XML Interchange Format Document

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.

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:

Script to Translate into the XML Interchange Format

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):

The Motion Path in Final Cut Pro

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):

Subtitles in a FileMaker Pro Database

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):

 The Subtitles Appear as Text Generators

Figure 6: The Subtitles Appear as Text Generators.

The filmmaker then fine tunes individual subtitles as circumstances require (Figure 7):

 An Individual Subtitle in the Canvas

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