Skip to content

Work in progress - Module to Convert a json sequence into an FCPX XML. For BBC News Labs digital paper edit project

Notifications You must be signed in to change notification settings

bbc/fcpx-xml-composer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FCPX XML Composer

work in progress

Convert a json sequence into an FCPX XML.

Inspired by EDL Composer on npm it uses the same schema to describe the sequence.

Part of the bbc/digital-paper-edit project by BBC News Labs

Setup

cd, clone the repo, npm install

Usage - development

see example-usage.js for how to requrie and use the module.

To run the example do node example-usage.js

When importing the .fcpxml sequence in FCPX the media is going to be offline, to re-link the media go to Files -> Relink Files or see see Re-link offline clips in FCPX, for more details.

Usage - production

npm install @bbc/fcpx-xml-composer

require or import in your code and see example usage for more details

System Architecture

A function that loop over the json sequence and using string interpolation creates an equivalent FCPX XML. With no dependencies.

Used the sequence form the docs - Listing 1-1 A library with a simple project as FCPXML as a starting point.

FCPX seems particularly picky about specifying the correct frame rate for the clips in the sequence.

Relinked files must have the same media type, same frame rate, and similar audio channels as the original files, and must be long enough to cover all the clips that reference the files.

DTD errors FCPX reference

A Known limitation is that the EDL composer sequence only supports one track, as the EDL format is not multi track. FCPX sequence could allow multiple tracks. But for the current use case with digital-paper-edit one track is sufficient. PRs might be considered to extend this module to multi track support.

Development env

Build

NA

Tests

TBC

Deployment

TBC - published to npm under @bbc/fcpx-xml-composer

TODO:

  • Add support for optional offset (in a way supported by FCPX XML)