Editing Pipelines with OpenTimelineIO

A detailed introduction to Pixar’s OpenTimelineIO, its timeline object model, EDL/XML adapters, viewer, installation and prospects for native NLE integration.

Archive translation. This article originally appeared in Digital Production 04:2019. Installation steps, software versions, adapters and support status reflect that period; verify current OpenTimelineIO documentation before use.

This article originally appeared in Digital Production 04:2019.

While the Academy Software Foundation was still organising, studios continued developing open standards. Pixar already had prominent projects such as USD and OpenSubdiv under modified Apache 2.0 licences. Less widely known projects could also simplify post-production, including OpenTimelineIO for exchanging editorial timelines.

OpenTimelineIO editorial exchange overview

Developers at Pixar had worked on a modern editorial exchange format since SIGGRAPH 2016. OpenTimelineIO (OTIO) combined that format with an API. It was not a media container; instead, it stored information about an edit—sequence, duration, transitions and references to external media.

The aim was an NLE-independent exchange format that could integrate editorial information more flexibly into the pipelines of participating teams. At the time of the article, OTIO was at beta version 10.

What about EDL?

Existing alternatives included CMX Edit Decision Lists, Advanced Authoring Format and Final Cut Pro 7 XML, often used separately or in combination.

Pixar identified limitations in each. CMX EDL was simple but supported only one video track and frequently repurposed comment fields for metadata. The absence of a standard API also complicated collaboration across studios. AAF offered many features, but its complex API reduced flexibility.

OTIO aimed for a middle ground: a simpler API, a capable interchange format and adapters for converting established formats to and from OTIO. It also included a viewer for visualising the structure of an OTIO timeline.

The installation procedure described at the time was:

OpenTimelineIO installation commands

1. Install Python 2.7, 3.5 or 3.6
2. Install pip
3. Install PySide 2
4. Download the GitHub repository
5. Install PySide2 through pip
6. Install OpenTimelineIO through pip

Optional plug-ins extended the system through Media Linkers, Hook Scripts and Schema Definitions.

OpenTimelineIO optional plug-in configuration

OpenTimelineIO viewer interface

OpenTimelineIO timeline structureOpenTimelineIO object hierarchy

OTIO features and adapters

An .otio file used an object hierarchy beginning with a Timeline. The Timeline contained a Stack, which in turn held Tracks containing sequences of Items. An Item could be a video clip, transition or marker.

OTIO supported many common editorial elements, including video and audio tracks, clips, gaps and fillers, markers, nested structures, transitions and time effects. Audio and video effects were still planned.

At that stage, editors and production tools such as Shotgun could not officially import or export OTIO directly. A timeline containing video, audio, images, transitions, markers and time effects first had to be exported in another supported format.

CMX EDL and Final Cut Pro 7 XML—including XML exported by Premiere Pro—therefore remained intermediary formats. These could then be converted into OTIO, manipulated with the installed OTIO library or inspected in the viewer. The viewer functioned primarily as a debugging tool for analysing timeline structure.

Pixar had already used OTIO on productions including Coco (2017) and Incredibles 2 (2018).

Community adapters required changes to an environment variable before formats such as RV Session files, Avid Log Exchange and Maya Sequencer became available. Full AAF support was not yet complete.

Conclusion

By 2019, the idea introduced in 2016 had developed into a practical project capable of reducing format confusion in editorial pipelines. Wider adoption beyond Pixar, however, required greater visibility, application support and native import and export in NLEs.

Helpful community plug-ins existed, including Protio for Premiere Pro, but remained exceptions. Development plans included complete AAF support, subtitles, a new C API with Python bindings and native NLE integration. The developers planned the next major presentation and update round for SIGGRAPH 2019.

Verify the current OTIO schema, Python requirements, adapter maturity, effect support and NLE integrations before deploying it in a modern pipeline.

Protio integration in Premiere Pro
Protio illustrated how native NLE integration could look.
OpenTimelineIO conversion feature support
Conversion feature support as documented in May 2019.

OpenTimelineIO adapter exampleOpenTimelineIO data inspectionOpenTimelineIO workflow diagram