Just recently switched back to Linux after more than a decade away. (I’m currently running Mint Cinnamon if anyone is curious) On Windows I was using the free version of Davinci Resolve for all of my video editing. I quickly discovered that the free version of Resolve for Linux doesn’t support H.264/H.265 so after trying every Linux video editor I could find (even Blender) I’ve settled on using Kdenlive. I’ve been having a good time getting everything dialed in and learning Kdenlive. I was able to get hardware acceleration working with my Nvidia GPU, and I really appreciated that it could natively utilize the proxy clips that my DJI Action 3 generates when recording. I’ve been reading all kinds of tips and tricks articles but most of it is just basic stuff. Anyone using Kdenlive have more advanced tips to share? Particularly anything around title generation and animation as I’ve found Kdenlive’s system to be a little clunky. Let’s talk!
Completely tangential tip, but in the very-limited video editing I’ve done recently: I’ve used Davinci Resolve, rendered as
.mov
, and then used ffmpeg to render to my actual desired format. e.g. h264 w/ aac audio so I can upload to Youtube:ffmpeg -i input.mov -c:v libopenh264 -profile:v high -c:a aac -pix_fmt yuv420p output.mp4
I do think that finding the right flags to pass to ffmpeg is a cursed art. Do I need to specify the video profile and the pix_fmt? I don’t know; I thought I did when I adventured to collect these flags. Though maybe it’s just a reflection of the video-codec horrors lurking within all video rendering pipelines.
edit: there may also be nvidia-accelerated encoders, like h264_nvenc, see
ffmpeg -codecs 2>/dev/null | grep -i 'h\.264'
. I’m not sure if theprofile:v
andpix_fmt
options apply to other encoders or just libopenh264.using openh264… well that’s a choice. I would recommend to everyone that they use x264 whenever possible, and make sure to specify output crf and likely preset when you fo
thanks, I’ll try out the libx264 encoder next time
A couple other things, you generally want to do pixel format conversion before the codec, is specified. You should be able to get satisfactory results with
ffmpeg -i input.mpv -pix_fmt yuv420p -c:v libx264 -preset medium -crf 24 -c:a aac output.mp4
Play with preset a bit since that is where your Quality/Compression : Speed ratio comes in, CRF is the quality it handles. So you set CRF for a ballpark quality you want, then change the preset, slower = higher compression, faster = lower compression.you can find more info here https://trac.ffmpeg.org/wiki/Encode/H.264#a2.Chooseapresetandtune but generally you don’t need to muck about with profiles or tunes or anything else
You’re probably aware already, but others reading this might be interested that you can access the same format conversion with Handbrake and WinFF if you prefer GUI tools. Remember your settings once and save them as a preset.
haha, yeah figuring out those ffmpeg flags is an absolute nightmare. My problem there isn’t so much the output format from Resolve, but source format I’m using. My camera only has the option to record in H.264/H.265 (consumer grade, what can you expect?) which Resolve can’t properly import on Linux. I could take the time to transcode them with ffmpeg before editing, but I’m usually working with ~2 hours worth of video per project and I don’t really want to wait all day for a transcode job to finish before I can even begin editing. On top of that my camera (rather neatly) generates its own proxy files while recording, and I’ve found leveraging these is necessary for getting good timeline performance on my aging rig. Now I could let Resolve generate its own proxy clips like I have in the past, but that’s more time waiting around before editing. I was SUPER stoked to see Kdenlive can natively utilize the proxy clips my camera generates.
Oh wow, I didn’t know (free) Davinci didn’t support using H.264 as source media, that feels rather limited.