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.