It helps you build and run Resolve in a Docker or Podman container. I’ve personally used it on Ubuntu, Debian, and Arch-based setups (well, CachyOS), and it’s worked great for me.
Right now it supports Nvidia very well. I’m also personally working on adapting it for AMD GPUs so I can run Resolve on my Strix Halo workstation.
One especially nice thing about this setup is that I can run multiple versions of Resolve on the same computer. If a new beta comes out, no problem — I can build a new container and try it out while keeping my stable version as my daily workhorse.
I was really impressed by how well it worked for me on Linux.
I think these things might have helped:
- I use an X11 desktop (Cinnamon), not Wayland. I've tried it out on a GNOME Wayland desktop but it seemed quite a bit more clunky and froze frequently.
- PipeWire runs the system's audio routing, so Resolve just appears as another ALSA client, and I can then use wiremix to send to my preferred speakers or headphones. (I haven't tried any audio input yet)
- I didn't try to install Resolve natively, I used davincibox [1] to install and update it within a container (it uses distrobox, which then uses podman).
I'll now be purchasing the studio version, which hopefully will work as well.
Installation still requires workarounds and codecs support is limited, but having that aknowledged and accepted, the application is finally usable!
PS. I don't know where the h264 (and other codes?) limitation come from, since ffmpeg has full support of it. Or is it just business model? Weird.
I would guess the codec limitation might come from licensing requirements, as BMD would need to pay for h264/h265 licenses for Linux, and that can't really be sustainable for a free product. MacOS and Windows already come with licensed system codecs.
My project had ProRes source media, so there was no codec issue and everything worked very smoothly. I exported ProRes and used ffmpeg to transcode to whatever I needed.
I don't think I would have bothered trying to run Resolve on Linux were it not for finding that davincibox script. It was incredibly straightforward to install, and now I just start it by clicking on an icon like a regular application.
Have fun!
#!/usr/bin/env bash
set -euo pipefail
INPUT_DIR="${1:-}"
TARGET_FPS="${2:-30}"
if [[ -z "$INPUT_DIR" ]]; then
echo "Usage: $0 <directory with clips> [target fps (defaults to 30)]"
exit 1
fi
if [[ ! -d "$INPUT_DIR" ]]; then
echo "Error: directory does not exist: $INPUT_DIR"
exit 1
fi
OUTPUT_DIR="$INPUT_DIR/conv"
mkdir -p "$OUTPUT_DIR"
EXTENSIONS=(
mp4 avi wmv mpg mpeg mov
mkv m4v flv webm ts mts m2ts 3gp
)
shopt -s nullglob nocaseglob
for ext in "${EXTENSIONS[@]}"; do
for file in "$INPUT_DIR"/*."$ext"; do
filename="$(basename "$file")"
name="${filename%.*}"
output="$OUTPUT_DIR/${name}.mov"
echo "Konwersja: $file -> $output"
ffmpeg -y -i "$file" \
-map 0:v:0 -map "0:a?" \
-vf "fps=${TARGET_FPS}" \
-vsync cfr \
-c:v prores_ks -profile:v 1 \
-pix_fmt yuv422p \
-c:a pcm_s16le -ar 48000 \
"$output"
done
done
echo "Results in: $OUTPUT_DIR"
and then converting final exported video to h.265: #!/usr/bin/env bash
set -euo pipefail
INPUT="${1:-}"
CRF="${2:-21}"
PRESET="${3:-slow}"
if [[ -z "$INPUT" ]]; then
echo "Usage: $0 <input file> [crf=21] [preset=slow]"
exit 1
fi
if [[ ! -f "$INPUT" ]]; then
echo "Error: file does not exist: $INPUT"
exit 1
fi
DIR="$(dirname "$INPUT")"
FILE="$(basename "$INPUT")"
NAME="${FILE%.*}"
OUTPUT="$DIR/${NAME}_h265.mp4"
ffmpeg -y -i "$INPUT" \
-map 0:v:0 -map '0:a?' \
-c:v libx265 \
-preset "$PRESET" \
-crf "$CRF" \
-pix_fmt yuv420p \
-tag:v hvc1 \
-c:a aac \
-b:a 192k \
-movflags +faststart \
"$OUTPUT"
echo "Ready: $OUTPUT"Got my license when I bought a second hand Blackmagic camera, must have been 5-6 major Resolve versions ago, and it still works as a charm! They're a rare star among a sea of trash in the software and (arguably bit less trash) hardware world.
I run Resolve under CachyOS using the project I mentioned -- everything works afaict.
Why though? I run it perfectly fine on Arch as-is, what problem does containers solve here? Install it to different paths and you have different versions working too.
The ALSA issues are beyond aggravating at this point. You do not want to actually run ALSA directly, you need it to connect to pulseaudio on 24.04. But I still have never been able to record audio within resolve. I've had mixed luck on newer wayland+pipewire setups with having to install the bridge packages to connect the different backends. Linux audio is cursed on its own so I don't fully blame BMD.
I exclusively run Kubuntu and have been using makeresolvedeb[1] for installing resolve and it has been pretty good.
To be fair, most studios seems to still be using CentOS 7 and Rocky 8, latest Ubuntu version tend to be 20.xx, all of them relatively old from like 2020s sometime.
AFAIK, the entire point of that reference platform is that nothing is "very unstable" or even "unstable" but instead a stable target to develop against. I'm guessing adding something like that would defeat the purpose somehow, and risk getting studios vary enough to make it not worth it.