Skip to content

OpenTimelineIO/toucan

Repository files navigation

Build Status

toucan

Toucan

Toucan is a software renderer for OpenTimelineIO files. Toucan can render an OpenTimelineIO file with multiple tracks, clips, transitions, and effects into an image sequence or movie file.

The project currently consists of:

  • C++ library for rendering timelines
  • Collection of OpenFX image effect plugins
  • Command line renderer
  • Interactive viewer
  • Example .otio files

Current limitations:

  • Audio is not yet supported
  • Nested timelines are not yet supported
  • Exporting movie files currently relies on the FFmpeg command line program (see below: FFmpeg Encoding)

Toucan relies on the following libraries:

Supported VFX platforms: 2024, 2023, 2022

OpenFX Plugins

The OpenFX image effect plugins include:

  • Generators: Checkers, Fill, Gradient, Noise
  • Drawing: Box, Line, Text
  • Filters: Blur, Color Map, Invert, Power, Saturate, Unsharp Mask
  • Transforms: Crop, Flip, Flop, Resize, Rotate
  • Transitions: Dissolve, Horizontal Wipe, Vertical Wipe
  • Color spaces: Color Convert, Premultiply Alpha, Un-Premultiply Alpha

Example Renders

Compositing multiple tracks:

CompositeTracks

Filter effects; color map, invert, power, saturate, blur, and unsharp mask:

Filters

Gap:

Gap

Linear time warps:

LinearTimeWarp

Generators; fill, gradient, checkers, and noise:

Generators

Drawing; line, box, and text:

Render

Dissolve transition:

Transition

Dissolve transition with an invert effect on the clips:

Transition 2

Wipe transitions:

Transition Wipe

Transforms; resize, rotate, flip, and flop:

Transforms

Color space conversion:

Color Space

Multiple effects on clips, tracks, and stacks:

Track Effects

FFmpeg Encoding

Toucan can send rendered images directly to FFmpeg for encoding. The images are piped to FFmpeg without incurring the overhead of disk I/O.

Example command line for piping images to FFmpeg:

toucan-render Transition.otio - -raw rgba | ffmpeg -y -f rawvideo -pix_fmt rgba -s 1280x720 -r 24 -i pipe: output.mov
  • Transition.otio: The input timeline file.
  • -: Write to standard out instead of a file.
  • -raw rgba: Set the pixel format of the output frames. This should match the -pix_fmt option given to FFmpeg. One exception is that toucan options do not specify the endian, the endian of the current machine is used. So for example the toucan option -raw rgbaf16 might match the FFmpeg option -pix_fmt rgbaf16le on the current machine. Check the toucan-render command line help for the list of available formats.
  • -y: Overwrite the output file if it already exists.
  • -f rawvideo: Set the input to raw video frames.
  • -pix_fmt rgba: Set the input pixel format as described above.
  • -s 1280x720: Set the size of the input frames. The image size can be found by running toucan-render with the -print_size option.
  • -r 24: Set the frame rate. The frame rate can be found by running toucan-render with the -print_rate option.
  • -i pipe:: Read from standard input instead of a file.
  • output.mov: The output movie file.

Building

Building on Linux

Clone the repository:

git clone https://github.com/OpenTimelineIO/toucan.git

Run the super build:

sh toucan/SuperBuild.sh Release

Run the viewer application:

export LD_LIBRARY_PATH=$PWD/install-Release/lib:$LD_LIBRARY_PATH
install-Release/bin/toucan-view toucan/data/Transition.otio

Building on macOS

Clone the repository:

git clone https://github.com/OpenTimelineIO/toucan.git

Run the super build:

sh toucan/SuperBuild.sh Release

Run the viewer application:

install-Release/bin/toucan-view toucan/data/Transition.otio

Building on Windows

Clone the repository:

git clone https://github.com/OpenTimelineIO/toucan.git

Run the super build:

toucan\SuperBuild.bat Release

Run the viewer application:

set PATH=%CD%\install-Release\bin;%PATH%
install-Release\bin\toucan-view.exe toucan\data\Transition.otio

About

Experiments with timeline rendering

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published