Blackmagic DaVinci Resolve on Linux

14/09/2021 - 22:30
Average: 4 (2 votes)

Blackmagic Designs DaVinci Resolve is one of the most powerful video editing suites available that runs on Linux. There are some quirks with DaVinci Resolve under Linux and this guide will help you with those.

There are two versions available of Blackmagic Design DaVinci Resolve, the free version and the paid studio version:

  • Free version - Free to download and use. It has some limitations on used export resolutions, available plugins and some of the more advanced features (noise reduction, effects, audio and video encoders/decoders, interlaced video handling). For many users this version does pretty much everything you might need for video editing.
  • Studio version - Relatively cheap (~300€) version that has no limitations, all features are available. This version required a license, either a registration code (allows two installations) or a USB license dongle (that must be connected at all times). Updates from major and minor versions have been free so far. Unfortunately, even with this paid version, there are encoder and decoder limitations under Linux. If you need to work with interlaced material, noise reduction and all possible video effects, then you need this paid version. Also if you need to work with interlaced video, for example transfering/editing old PAL/NTSC videos, you need the studio version for proper handling.

    If you get the Dongle license version you can also use Fusion, the separate Video FX suite.

The current version of DaVinci Resolve is 17.3.1

DaVinci Resolve is obviously not free software, open source or anything close to that, but it does use plenty of open source software internally like Qt (5.4.1 to be specific), SoX Resampler library libsoxr, OpenCV 3.4.1 and FFMPEG. (Yep, ffmpeg, the all decoding and encoding video tool. The irony...). (And yes, I've tried replacing the ffmpeg libraries with ones that support more formats, no luck there unfortunately). The Studio version also supports scripting with Python and Lua and external encoding plugins in C++.

Hardware and software requirements

Resolve does have some hefty hardware requirements, a powerfull multi core CPU and GPU with plenty of VRAM is required, especially if working on anything higher than Full HD or using GPU specific features like noise reduction. The open-source drivers will not work, you do need to use proprietary NVIDIA or AMD Radeon drivers.

Minimum system requirements for Resolve on Linux, according to Blackmagic, are:

  • CentOS 7.3
  • 32 GB of system memory
  • Discrete GPU with at least 2GB of VRAM
  • GPU which supports OpenCL 1.2 or CUDA 11
  • NVIDIA/AMD Driver version – As required by your GPU

You also need to have:

  • CPU with SSE4 (So you are out of luck on older CPUs, for example Phenoms, even if specs would otherwise be just fine)

Experience has shown that you can work with less memory if you keep to basic features, 8-16GB memory is fine for basic cutting of Full HD footage. A NVIDIA GPU is highly recommended, AMD GPU should work too, but afaik, some effects are CUDA only.

Any decent Linux distribution should be OK, the officially supported distribution is a very old CentOS 7.3 but who uses something like that ? Experience has shown that for example Linux Mint works perfectly, and so should any Ubuntu derived distribution. Other distributions shoud be just fine too.

Make sure you have up to date GPU drivers and that your GPU is supported, minimum CUDA version is 11 or OpenCL 1.2. Also GPU with at least 4 GB of VRAM is higly recommended for any serious work. And for any GPU based features like noise reduction or effects, 4K resolution the more the better.

Download DaVinci Resolve

You can find downloads of Resolve to the latest versions and also old version (great if your CPU/GPU is not up for the latest and greatest!) at Blackmagics support site, in the Latest downloads section.

Be sure to pick the right version, if it has Studio in the name then you need to buy a license activation code or have the license dongle. Unfortunately you can't easily switch between the Studio and Free version, it would be great if the Studio version would just limited the features if no license is found, but alas, it won't.

Decoding and encoding limitations

Both the Free and Studio versions have very limited support for both audio and video decoders and encoders, especially with Linux. The Studio version is a bit better than the free version in this regard, but it is still much worse than on Windows or OS X.

Video decoder limitations

The free versions has a very limited support for video decoders in all supported operating systems, but especially limited under Linux. The de-facto standard (consumer) video formats that are used everywhere like h264 and h265 are not supported at all. Fortunately there are workarounds, a bit time and space consuming, but still, easy.

The studio version does support h264 and h265.

Video encoder limitations

There are also limitations in the encoding part, or exporting formats. Here too h264 or h265 is not supported under Linux in the free version.

The studio version support h264 and h265 encoding.

Quality wise it is also recommended to export in DNxHR and then encode with ffmpeg to h264.

Audio encoder limitations

Audio encoding support is very bad in both versions, even the paid Studio version won't export anything other than uncompressed PCM. Blame idiotic software patents for this. There is no support for any standard encoding (Advanced audio coding, aac) formats under Linux. Using uncompressed PCM audio is the best (and only) option and then re-muxing with ffmpeg and compressing the audio, see below for examples.

There is nothing wrong with uncompressed audio, it is the best quality you can have after all. The issue is with playback, not all software and especially consumer hardware supports it in video containers.

Audio input

ALSA audio input is working since version 17.3

Workarounds for encoder and decoder limitations

FFmpeg to the rescue! It does add an extra step, but not a big deal.

Decoding, re-encoding or re-muxing video

Operation FFMpeg command
Extract audio from video to raw 16-bit PCM .wav ffmpeg -i video.flv -c:a pcm_s16le audio-only.wav
Encode to DNxHR-HQ and PCM audio ffmpeg -i -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a pcm_s16le
Re-mux video, decoding audio to PCM, copying video ffmpeg -i -c:v copy -c:a pcm_s16le

Encoding video and audio

Operation FFMpeg command
Encode audio to AAC, copying video ffmpeg -i -c:v copy -c:a aac
Encode to DNxHR-HQ and PCM audio ffmpeg -i -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a pcm_s16le
Encode high quality h264 video and AAC audio ffmpeg -i -preset veryslow -crf 14 -c:a aac -b:a 256k video.mp4
Encode high quality h264, force yuv420, video and AAC audio ffmpeg -i -preset veryslow -pix_fmt yuv420p  -crf 14 -c:a aac -b:a 256k video.mp4

Speed Editor keyboard

The Speed Editor keyboard should work fine with 17 (initial support in beta 4) using USB (Bluetooth support unknown).

You might need to fix the device access with a udev rule like:

KERNEL=="hidraw*", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="da0e", MODE="0660", TAG+="uaccess"

HiDPI issues

Under some desktop environments you might have issues with scaling when using HiDPI displays. A workaround is to set a couple Qt environment variables:


Other quirks or limitations

  • ALT+Mouse button combination is used in Resolve but might be reserved by your desktop system for moving windows. You need to disable or change the combo.
  • ALSA Audio input didn't work until version 17.3

Related resources

Color grading and color management

Blackmagic, FFmpeg