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
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
Compositing multiple tracks:
Filter effects; color map, invert, power, saturate, blur, and unsharp mask:
Gap:
Linear time warps:
Generators; fill, gradient, checkers, and noise:
Drawing; line, box, and text:
Dissolve transition:
Dissolve transition with an invert effect on the clips:
Wipe transitions:
Transforms; resize, rotate, flip, and flop:
Color space conversion:
Multiple effects on clips, tracks, and stacks:
Toucan can send rendered images to the FFmpeg command line program for encoding. The images can be sent as either the y4m format or raw video. The images are piped directly to FFmpeg without the overhead of disk I/O.
Example command line using the y4m format:
toucan-render Transition.otio - -y4m 444 | ffmpeg -y -i pipe: output.mov
Transition.otio
: The input timeline file.-
: Write to standard out instead of a file.- '-y4m 444': Set the pixel format of the output images. Possible values: 422, 444, 444alpha, 444p16
-y
: Overwrite the output file if it already exists.-i pipe:
: Read from standard input instead of a file.output.mov
: The output movie file.
Example command line using raw video:
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 images. Possible values: rgb24, rgb48, rgba, rgba64, rgbaf16, rgbaf32, rgbf32-y
: Overwrite the output file if it already exists.-f rawvideo
: Set the input to raw video frames.-pix_fmt rgba
: Set the pixel format same as above.-s 1280x720
: Set the size of the input frames. The image size can be found by runningtoucan-render
with the-print_size
option.-r 24
: Set the frame rate. The frame rate can be found by runningtoucan-render
with the-print_rate
option.-i pipe:
: Read from standard input instead of a file.output.mov
: The output movie file.
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
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
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