The present and future of post production business and technology

Final Cut Pro 10.6’s XML Bundle Format Explained

With the release of Final Cut Pro 10.6 Apple introduced a new XML format. The original FCP XML was known as fcpxml and was a single text file, as is all XML. The new format – fcpxmld – is a package, not a single file known as a Bundle. A ‘Bundle’ in macOS appears as a single file in the Finder, but is a special type of folder that is read as a single file. Most apps are packages. The FCP Library is a Bundle.

As a Folder, a Bundle has other files within it, known as Sidecar Files. With fcpxmld the files inside the package include a fcpxml file exactly the same as the existing fcpxml files. This is useful if you run into an app that doesn’t (yet) read the new format.

While Apple haven’t explained their reasons for changing the format, the new Bundle format allows the XML to remain straightforward, while carrying additional data, like Tracking or Stabilization data along with the XML metadata. In the original fcpxml, additional data, like tracking or stabilization has to be converted from the binary data into a form that can be contained in a text file. This makes the resulting text XML files very large and unwieldy. Developers have to read in all the data, hold it in memory and read it back out. With all the additional data in the XML it becomes very memory intensive, very quickly.

By separating out the text-based XML from the various data files, developers can read in the XML without the memory challenges of the combined files. Developers who want to work with tracking or stabilization data could read that directly, without needing to extract and convert it out of the XML.

It’s important to note that XML is always, and only, about metadata. With the new Bundle format that does not change. This Bundle is not designed to carry media as is an option as it is with AAF.

The bottom line is that nothing will change unless you’re a developer. FCP remains compatible with the original single file format. In fact, you can read the Bundle’s contents by right-clicking on the Bundle and selecting “Show Package Contents” to reveal the content. Inside you’ll find a regular fcpxml file that can be imported to apps that don’t support fcpxmld. This also allows apps, like those form Intelligent Assistance and Lumberjack System, to ignore all that extra metadata, and return a classic fcpxml file.

For those interested, here’s Apple’s Developer Documentation.






2 responses to “Final Cut Pro 10.6’s XML Bundle Format Explained”

  1. Tangier Clarke

    Thanks for this explanation Philip. You mentioned AAF in this article and it had me searching through a couple of your older articles. Do you have any speculation at this point why Apple has not supported exporting to an AAF directly from FCP X without the using something like X2Pro? I was wondering if your understanding of Apple’s technology and developer tools me reveal this. Or is it simply that Apple chooses not to or doesn’t see the value in implementing that capability for what it considers is FCP’s primary user or audience. A decade later this is baffling this isn’t built in.

    1. Philip

      AAF is a disaster for developers. Period. Basically licensing conditions are “make the thing, then we’ll tell you how much you’ll have to pay for licensing.” For interchange purposes XML is way more open being text. AAF is a binary format requiring special skills. So I would say the decision is entirely about making an exchange format that people can actually use to enhance there ecosystem. Compare the number of developers working with FCP XML (hundreds) and then compare with AAF developers (couple of dozen at best) and I’d say that Apple’s decision was the right one. As for a specific audio workflow to ProTools, that’s such a niche group that it is righty a third party opportunity.