#
DaVinci Resolve IO Encode Plugin SDK
#
Getting Started
The DaVinci Resolve IO Encode Plugin SDK enables development of additional codecs and container formats that can be rendered directly from DaVinci Resolve. These plugins can be distributed directly to customers who can use these in supported versions of DaVinci Resolve Studio. Currently, only CPU based plugins are supported.
#
Plugin Format
Plugins should be distributed in the following format:
- Mac: 64-bit dynamic library
- Linux: 64-bit shared object
- Windows: 64-bit DLL
#
Plugin Packaging
The plugin binary must be packaged in a bundle folder structure (similar to a Mac binary bundle). A single bundle may contain the plugin libraries for one or more architectures. The expected directory hierarchy is as follows:
PLUGIN.dvcp.bundle
Contents
ARCH_1
PLUGIN.dvcp
ARCH_2
PLUGIN.dvcp
...
ARCH_N
PLUGIN.dvcp
where:
PLUGIN
is the name of the plugin (the exact name should be used in both the bundle and binary name)ARCH_x
is the name of the architecture
The supported architectures on each operating system are:
- Mac: MacOS - for Apple Universal2 binaries (x86_64 + Arm64) or Arm64 build
- Mac: MacOS-x86-64 - on Intel only machines, this folder will be checked first, and if not found or empty, the MacOS folder will be checked
- Linux: Linux-x86-64
- Windows: Win64
#
Example Plugin
The 'Examples' folder contains a sample plugin for the x264 encoder in the folder named 'x264_encoder_plugin'.
- Compile the x264 plugin from source (downloadable from here)
- Modify
.mk.defs
(for Mac/Linux) orplugin2015.vcxproj
(for Windows) inx264_encoder_plugin
to point to the location of x264 install path. - From the
x264_encoder_plugin
folder, build the plugin viamake
on Mac/Linux, or using Visual Studio on Windows.
After the plugin has been successfully built, the target plugin library will be placed in the build folder. Package the plugin binary as per the naming convention above. For example:
- Mac:
x264_encoder_plugin.dvcp.bundle/Contents/MacOS-x86-64/x264_encoder_plugin.dvcp
- Linux:
x264_encoder_plugin.dvcp.bundle/Contents/Linux-x86-64/x264_encoder_plugin.dvcp
- Windows:
x264_encoder_plugin.dvcp.bundle/Contents/Win64/x264_encoder_plugin.dvcp
To activate the plugin in Resolve, copy 'x264_encoder_plugin.dvcp.bundle' folder to Application Support folder, into the 'IOPlugins' subfolder. The exact location is as follows:
- Mac:
/Library/Application Support/Blackmagic Design/DaVinci Resolve/IOPlugins
- Mac (AppStore):
~/Library/Containers/com.blackmagic-design.DaVinciResolveAppStore/Data/Library/Application Support/IOPlugins
- Linux:
/opt/resolve/IOPlugins
- Windows:
%ProgramData%\Blackmagic Design\DaVinci Resolve\Support\IOPlugins
Once the plugin folder is installed, start Resolve and create a timeline with clips. Go to the Deliver page. In the format list, the list of containers supported by the plugin should show up. If a plugin supported container format (or QuickTime) is chosen, codecs supported by the plugin should be visible in the codecs list. Upon selecting the plugin codec, the corresponding UI widgets will be shown in the render settings.