Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bbc/fcpx-xml-composer
Work in progress - Module to Convert a json sequence into an FCPX XML. For BBC News Labs digital paper edit project
https://github.com/bbc/fcpx-xml-composer
digital-paper-edit edl fcpx fcpxml final-cut final-cut-pro final-cut-pro-x json news-labs newslabs video-editing xml
Last synced: 10 days ago
JSON representation
Work in progress - Module to Convert a json sequence into an FCPX XML. For BBC News Labs digital paper edit project
- Host: GitHub
- URL: https://github.com/bbc/fcpx-xml-composer
- Owner: bbc
- Created: 2019-06-26T10:18:39.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-08T13:25:34.000Z (over 1 year ago)
- Last Synced: 2024-04-08T21:02:37.076Z (7 months ago)
- Topics: digital-paper-edit, edl, fcpx, fcpxml, final-cut, final-cut-pro, final-cut-pro-x, json, news-labs, newslabs, video-editing, xml
- Language: JavaScript
- Size: 871 KB
- Stars: 22
- Watchers: 12
- Forks: 5
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FCPX XML Composer
_work in progress_
Convert a [json sequence](./sample/input/example_sequence.json) into an FCPX XML.
Inspired by [EDL Composer](https://github.com/pietrop/edl_composer#readme) on [npm](https://www.npmjs.com/package/edl_composer) it uses the same schema to describe the sequence.
Part of the [`bbc/digital-paper-edit`](https://github.com/bbc/digital-paper-edit) project by BBC News Labs
## Setup
cd, clone the repo, `npm install`
## Usage - development
see [`example-usage.js`](./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](https://support.apple.com/kb/PH12701?locale=en_US).## 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`](https://developer.apple.com/library/archive/documentation/FinalCutProX/Reference/FinalCutProXXMLFormat/EventsandProjects/EventsandProjects.html) 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](https://developer.apple.com/library/archive/documentation/FinalCutProX/Reference/FinalCutProXXMLFormat/FCPXMLDTD/FCPXMLDTD.html)
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
- [ ] npm > `6.1.0`
- [ ] node v 10 - [lts/dubnium](https://scotch.io/tutorials/whats-new-in-node-10-dubnium)## 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)