If you try to import mp4 file to DaVinci Resolve under Linux, you will be greeted with audio-only experience if you’re lucky or nothing at all if you’re not. Unless you’re paying customer of DaVinci Resolve Studion, MP4 and AAC are not supported at all.
Conversion to an intermediate format is needed and good old ffmpeg can help here:
ffmpeg -i ^^input.mp4^^ \
-c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p \
-c:a pcm_s16le \
-f mov ^^output.mov^^
Here I use DNxHR with HQ settings. Even this will generate file that’s much bigger than source. How much bigger depends on the source, but don’t be surprised to see it grow 16-fold or even higher.
Smaller alternative can be MPEG4 format but with a drop in quality even at its best settings:
ffmpeg -i ^^input.mp4^^ \
-c:v mpeg4 -qscale:v 1 \
-c:a pcm_s16le \
-f mov ^^output.mov^^
These files can now be used as input to Resolve and editing can commence.
Once done with rendering a conversion to MP4 might be in order again. For this I use settings discussed on Video StackExchange. While the original discussion was for YouTube, I find their recommendations quite good as a starting point:
$ ffmpeg -i ^^render.mov^^ \
-c:v libx264 -pix_fmt yuv420p -crf 16 \
-force_key_frames 'expr:gte(t,n_forced/2)' -bf 2 \
-vf yadif -use_editlist 0 \
-movflags +faststart \
-c:a aac -q:a 1 \
-ac 2 -ar 48000 \
-f mp4 ^^out.mp4^^
Mind you, all my cameras use YUV 4:2:0 and I don’t do any major editing so increasing YUV to 4:2:2 or even 4:4:4 makes no sense nor does increase to 10-bit resolution. Depending on which equipment you have, your mileage may vary.