DaVinci Resolve 16 Linux mp4/h.264 encode/decode

DaVinci Resolve doesn’t support import or export of mp4 format on Linux. It is working on Windows 10, but I really don’t want to switch to boot into Windows for rendering.

So i looked around and found a workflow for using Resolve under Linux: ffmpeg is my tool of choice to change formats so that Resolve is able to load and write my videos.

My recordings from OBS are saved as mkv as proposed by an OBS warning in the recording settings.

mkv to mov

ffmpeg -i input.mkv -map 0:0 -map 0:1 -map 0:2 -vcodec dnxhd -acodec:0 pcm_s16le -acodec:1 pcm_s16le -s 1920x1080 -r 30000/1001 -b:v 36M -pix_fmt yuv422p -f mov output.mov

After converting the recording to the mov format DaVinci Resolve 16 is able to use the file with all audio tracks.

mp4 to mov

If I get videos from other sources most of the time its in mp4 format. With the following command I convert the mp4 to DaVinci Resolve usable mov:

ffmpeg -i input.mp4 -vcodec dnxhd -acodec pcm_s16le -s 1920x1080 -r 30000/1001 -b:v 36M -pix_fmt yuv422p -f mov output.mov

mov to mp4

In DaVinci Resolve 16 I export my videos with mov format and then convert them to youtube ready mp4 with this command:

ffmpeg -i input.mov -vf yadif -codec:v libx264 -crf 1 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart output.mp4

TLDR

DaVinci Resolve 16 does NOT support h.264 en-/decoding on Linux and you have to transcode your videos for example with ffmpeg as shown above. Transcoding is quite fast also on my 6 year old machine.