DaVinci Resolve is a professional-grade video editing and color grading software that offers a comprehensive set of tools and features for post-production work. One key aspect of DaVinci Resolve is its support for Linux as a platform, making it an attractive choice for Linux users and professionals working in Linux-based environments.
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, limitations in resolution, supported effects and codecs.
It has some limitations on used export resolutions (UHD), available plugins and some of the more advanced features (noise reduction, effects, audio and video encoders/decoders, interlaced video handling, GPU usage). For many uses and users this version does pretty much everything you might need for video editing. Does not utilize a GPU as much as the paid Studio version. - Studio version - Relatively cheap (around 315€ / $299 without tax) version that has no limitations, all features are available.
This version requires a license, either a registration code (allows two installations) or a USB license dongle (that must be connected at all times). Updates from all major and minor versions have been free so far. 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 editing old SD PAL/NTSC videos, you need the studio version for proper interlacing handling.
If you get the USB Dongle license version you can also use Fusion, the separate Video FX suite.
Note: Unfortunately, even with this paid version, there are encoder and decoder limitations under Linux.
Note: Some of the Blackmagic Hardware (Cameras, Editing keyboards) come bundled with the DaVinci Resolve Studio version license, this can sometimes be a great way to get the Studio version.
The latest stable release of DaVinci Resolve 18.6 is version 18.6.6 (released 20.3.2024) and can be downloaded from the Blackmagic Design support site. Older major versions (17, 16, etc) are also still available and in case your hardware or OS version is not up to the task with the latest and greatest, these older versions might still be a good option for you.
Did you know DaVinci Resolve depends on many Open Source software packages ?
DaVinci Resolve itself is obviously not free software, open source or anything even close to that, but it does depend on plenty of open source software internally like Qt (5.15 since 17.4 to be specific), SoX Resampler library libsoxr, PostgreSQL, gstreamer, curl, graphviz, lua, python, libusb, OpenCV 3.4.1 and FFMPEG 4.3.1. (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).
Scripting support with Python and Lua
The Studio version also supports scripting with Python and Lua. Also external encoding plugins can be made in C++.
See the documentation and examples under the installation directory in Developer/Scripting
for details if this interests you.
- We Suck Less Fusion Reactor extension manager for Resolve and Fusion
- Lua & Python scripting in DaVinci Resolve
Linux specific changes in various releases
Release 18.6
- Nothing Linux specific
Release 18.5
This release had some major Linux specific updates, below is a short summary of them:
- Support for voice isolation in Studio for Linux.
- Support for dialog leveler for Linux.
- Support for decoding AC3 audio in Linux.
- Rocky Linux 8.6 based installation environment for DaVinci Resolve.
Release 17.3
- ALSA Audio input support
Hardware and software requirements of DaVinci Resolve
Resolve does have some hefty hardware requirements, a powerful multi core CPU and GPU with plenty of VRAM is highly recommended, 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:
- Rocky Linux 8.6
or 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
- GPU Drivers as required by your GPU
Database storage (optional)
- A PostgreSQL server can be used for shared network project storage when using Studio version of DaVinci Resolve.
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 for SD/HD editing.)
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 SD, HD or Full HD footage. A NVIDIA GPU is highly recommended, AMD GPUs does work too, but afaik, some effects and plugins are CUDA only and might be slower on AMD GPUs.
Any decent Linux distribution should be OK, the officially supported distribution is a very old CentOS 7.3 but who uses something like that anymore ? 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-6 GB of VRAM is highly recommended for any serious work. And for any GPU based features like noise reduction or effects, 4K resolution the more the better.
Note: Resolve is not the only application using precious GPU memory, your desktop environment, X11, Firefox, etc will also be using some it. Check with your GPU utilities in case you have low GPU memory issues.
Download DaVinci Resolve for Linux
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 USB 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 work.
Installing DaVinci Resolve on Linux
To install DaVinci, first unzip the downloaded archive. It includes two files, the installer executable and an instruction pdf. The installer is an executable script so you will not need to use any package management utility to do the installation. Also converting the installer to a RPM or DEB is not required.
To start the installation you just simply execute the installer and follow the GUI wizard. Just click trough the prompts and let it do its thing.
$ unzip DaVinci_Resolve_Studio_18.1_Linux.zip Archive: DaVinci_Resolve_Studio_18.1_Linux.zip inflating: DaVinci_Resolve_Studio_18.1_Linux.run inflating: Linux_Installation_Instructions.pdf $ ./DaVinci_Resolve_Studio_18.1_Linux.run
The installer will do a rudimentary check on required packages and will inform you if anything is missing, for example:
Error: Missing or outdated system packages detected. Please install the following missing packages: libxcb-cursor0 Use SKIP_PACKAGE_CHECK=1 to bypass the system package check. |
Image
|
In case the installer complains about missing packages, just install them with your distributions package manager. For example for the above it would be:
apt install libxcb-cursor0
When installer is done, you are ready to start DaVinci Resolve.
Media decoding and encoding limitations
DaVinci Resolve does support many different media containers (mov, mp4, mxf, etc) and many, mainly professional (raw, low-compression formats), codecs.
Unfortunately both the Free and Studio versions have some limitations in the audio and video decoders and encoders, under 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 macOS.
Video decoder limitations
The free versions has a very limited support for video decoders in all supported operating systems, but it is 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, pretty easy and straightforward.
- 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, but only with NVIDIA GPU encoding.
Quality wise it is also recommended to export first in DNxHR and then encode with ffmpeg to h264 as hardware encoding can be worse.
Audio decoder limitations
Support for AC3 codec was added in 18.5 for Linux. Support for decoding AAC codec is still missing under Linux. Not in Free and not in Studio. Video files with AAC audio will load, but the audio track will be silent.
Note: Support for AC3 decoding has been added to version 18.5. Note this if you need to use an older version.
Solutions and workaround for missing decoders:
- re-mux video files with ffmpeg and decode audio track(s) to PCM audio or extracting audio track(s) as separate wav files. See below for details.
Audio encoder limitations
Audio encoding support is very bad in both the free and studio versions, even the paid Studio version won't export anything other than uncompressed Liner PCM. Blame idiotic software patents for this. There is no support for any standard encoding (Advanced audio coding, aac) formats under Linux. Using uncompressed Linear PCM or IEEE Float audio is the best (and only) option and then re-muxing with ffmpeg and compressing the audio, see below for examples.
Note: Since 18.1, MP3 has been added as an lossy compression option.
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. Then again, for uploading to various video services, like for example YouTube, PCM is the optimal option.
Solutions and workaround for missing encoders:
- re-mux video files with ffmpeg and encode audio track(s) to the codec you require. See below for details.
Audio input
Audio input/recording from standard audio devices was missing for a long time. Version 17.3 added support for Linux ALSA audio devices and it is possible to record on the Fairlight page.
Note that if you are using anything older than 17.3, then audio input (recording of audio) won't work.
Solutions and workarounds for audio/video encoder and decoder limitations
FFmpeg to the rescue! It does add an extra step, but not a big deal. Below are some examples on re-encoding (lossy) and re-muxing (lossless) to various video and audio combinations. For more details on using DNxHR or DNxHD see this tutorial.
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 video.mov -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a pcm_s16le video-dnxhr-gq-raw-pcm.mov |
Re-mux video, decoding audio to PCM, copying video | ffmpeg -i video.mov -c:v copy -c:a pcm_s16le video-encoded-audio-raw-pcm.mov |
Re-mux FLV video, decoding audio to PCM, copying video | ffmpeg -i video.flv -c:v copy -c:a pcm_s16le video-encoded-audio-raw-pcm.mov |
Encoding video and audio
Operation | FFMpeg command |
---|---|
Encode audio to AAC, copying video | ffmpeg -i video-h264-audio-raw-pcm.mov -c:v copy -c:a aac video-h264-audio-aac.mov |
Encode to DNxHR-HQ and PCM audio | ffmpeg -i video.mov -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a pcm_s16le video-dnxhr-gq-raw-pcm.mov |
Encode high quality h264 video and AAC audio | ffmpeg -i video.mov -c:v libx264 -preset veryslow -crf 14 -c:a aac -b:a 256k video.mp4 |
Encode high quality h264, force yuv420, video and AAC audio | ffmpeg -i video.mov -c:v libx264 -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 since version 17 (initial support in beta 4) using USB (Bluetooth support unknown).
UDEV rules for Speed Editor keyboard
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:
export QT_DEVICE_PIXEL_RATIO=2 export QT_AUTO_SCREEN_SCALE_FACTOR=true
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
Hints & Tips
- Running out of GPU memory in Resolve ? You can monitor GPU usage by process with the nvidia-smi utility. For example firefox can be a GPU memory hog and closing it might release enough for Resolve to be happy again.
| 0 N/A N/A 202962 G /usr/lib/firefox/firefox 1610MiB |