Main web site: http://opentimeline.io/
Discussion Group: https://groups.google.com/forum/#!forum/open-timeline-io
PUBLIC BETA NOTICE
OpenTimelineIO is currently in Public Beta. That means that it may be missing some essential features and there are large changes planned. During this phase we actively encourage you to provide feedback, requests, comments, and/or contributions.
OpenTimelineIO is an interchange format and API for editorial cut information. OTIO is not a container format for media, rather it contains information about the order and length of cuts and references to external media.
OTIO includes both a file format and an API for manipulating that format. It
also includes a plugin architecture for writing adapters to convert
from/to existing editorial timeline formats. It also implements a dependency-
less library for dealing strictly with time,
You can provide adapters for your video editing tool or pipeline as needed. Each adapter allows for import/export between that proprietary tool and the OpenTimelineIO format.
Documentation, including quick start, architecture, use cases, API docs, and much more, is available on ReadTheDocs
OpenTimelineIO supports, or plans to support, conversion adapters for many existing file formats, such as Final Cut Pro XML, AAF, CMX 3600 EDL, etc.
OTIO also supports several other kinds of plugins, for more information see:
- Media Linkers - Generate media references to local media according to your local conventions.
- HookScripts - Scripts that can run at various points during OTIO execution (ie before the media linker)
- SchemaDefs - Define OTIO schemas.
Installing / Quick-Start
You can install OpenTimelineIO via
pip install opentimelineio
For more details, including how to run the included viewer program, see: https://opentimelineio.readthedocs.io/en/latest/tutorials/quickstart.html
C++ Installation Instructions
Get the source and deal with submodules:
- git clone email@example.com:PixarAnimationStudios/OpenTimelineIO.git
- cd otio
- git checkout cxx
- git submodule init
- git submodule update
If you want to only build for C++ development (i.e. produce the OTIO C++ libraries and header files), then use cmake:
- mkdir build
- cd build
- ccmake .. (configure PYTHON_EXECUTABLE, PYTHON_LIBRARY, and CMAKE_INSTALL_PREFIX)
- make install
If you wish to build only for use with Python, run one of the following two commands:
- pip install .
- python setup.py install
However, if you want to build for Python but you also want to install the OTIO C++ headers and libraries, then run one of the following two commands
- pip install . --install-option=“--cxx-install-root=/home/someone/cxx-otio-root"
- python setup.py install --cxx-install-root=/home/someone/cxx-otio-root
To compile a C++ file, add the following -I flags:
- c++ -c source.cpp -I/home/someone/cxx-otio-root/include -I/home/someone/cxx-otio-root/include/opentimelineio/deps
To link, add the following -L/-l flags:
- c++ ... -L/home/someone/cxx-otio-root/lib -lopentimelineio
(If you are using only opentime, not opentimelineio, use -lopentime. Also, you could leave out the second -I flag.)
import opentimelineio as otio timeline = otio.adapters.read_from_file("foo.aaf") for clip in timeline.each_clip(): print clip.name, clip.duration()
There are more code examples here: https://github.com/PixarAnimationStudios/OpenTimelineIO/tree/master/examples
Also, looking through the unit tests is a great way to see what OTIO can do: https://github.com/PixarAnimationStudios/OpenTimelineIO/tree/master/tests
OTIO includes a viewer program as well:
If you want to contribute to the project, please see: https://opentimelineio.readthedocs.io/en/latest/tutorials/contributing.html
You can get the latest development version via:
git clone firstname.lastname@example.org:PixarAnimationStudios/OpenTimelineIO.git OpenTimelineIO
You can install development dependencies with
pip install -e .[dev]
You can also install the PySide2 dependency with
pip install -e .[view]
Currently the code base is written against python 2.7, python 3.6 and 3.7, in keeping with the pep8 style. We ask that before you submit a pull request, you:
make test-- to ensure that none of the unit tests were broken
make lint-- to conform to pep8
make coverage-- to detect code which isn't covered
For more information, please visit http://opentimeline.io/ or https://github.com/PixarAnimationStudios/OpenTimelineIO or join our announcement mailing list: https://groups.google.com/forum/#!forum/open-timeline-io