What is the BEST video stabilization software / algorithm in existence today? What software should you use in video production? How to stabilize shaky drone or action camera footage?
Video Stabilization Comparison: DaVinci Resolve vs Adobe Premiere vs VirtualDub Deshaker
I’ve compared video stabilization capabilities of some of the most popular video editing and production tools of today:
All right, some readers will dispute VirtualDub in this list, but it is still one of my favorite quick and easy to use video editor. Of course, it cannot be compared to commercial solutions with all the features a full blown video editing suite has to offer, however, some filters VirtualDub comes with, like Deshaker in today’s round-up (most of them are coded by independent 3rd party authors), are simply – ingenious! Period.
How I tested? 8 different examples – 8 different situations. From the handheld recorded clips with my phone, when I was very sorry for not having my tripod with me, non-stabilized drone footage, all the way down to some casual recordings made with my ultra-zoom Canon SX50 HS camera (which has excellent built-in optical stabilization). It took me a whole week to gather material, sort it out, and then try all the different settings, algorithms and tweaks to find the best possible outcome from a given tool for a particular movie clip.
Who is the winner? Watch this video to find out and judge by yourself!
VIDEO STABILIZATION WORKFLOW EXPERIENCE
From my personal experience, which I’ve gathered from laborious work with all these tools for several weeks, there are certain observations that I’ve made, which are important for the workflow (in another words: everything is not always peachy):
- DaVinci Resolve seems to be the fastest one when it comes to video clip stabilization, both for analysis / tracking and actual stabilization part. This is somewhat expected, since Resolve will not function without modern CUDA (NVIDIA) or OpenCL (AMD/NVIDIA) capable graphics card(s) present. Resolve version 15 requires at minimum CUDA compute level 3.0 or OpenCL 1.2 or newer GPU capability. At first, in the eyes of ordinary users, this may appear as an artificial requirement designed to promote “specialized” hardware sales (as of this moment, you can buy a second-hand NVIDIA GTX 650/660/750/760 card for just $25 that can run the software without any issues – plus, it will also help you with Adobe Premiere GPU accelerated effects and codecs, too!). Resolve aims at professionals, studios and artists, which are assumed to have at least a decent system(s) to run the industry-grade software in the first place. The downside of Resolve is that each time you change stabilization mode, analysis cycle is repeated again (granted, it runs much quicker), unlike in Premiere where it is performed only once initially.
- DaVinci Resolve is very picky when it comes to input and output video codecs and formats support and availability. For example, it does not recognize neither 2k/4k H.264 HEVC .mp4 files from my Sony Xperia phone, nor H.264 AVC .mov files from my Canon SX50 HS camera! When I import the clips into timeline, “Media Offline” generic message appears, but it has nothing to do with the actual media (un)availability – support for codec (or the lack of it) is! This means that I have to convert them to an intermediate format (IMF) before importing into Resolve. It does not support common uncompressed RGB AVI files, nor for e.g. Lagarith lossless codec (faster and more efficient in comparison to GoPro CineForm lossy video codec that Resolve supports, for example) even if you wrap them into .mp4 or .mov containers, on the grounds that those formats are not “common among professionals“. These are very frustrating facts, to say at least, and we are back again to above “elitist” remark. Still, you have no choice, since it really does have extremely fast and powerful stabilization engine.
- DaVinci Resolve On a side note, I must mention the fact that I had issues with Resolve couple of times (see Example #4 in video), where whites appeared over-blown, and overall image had too much contrast and sharpness. I tested with different IMF and output formats and color spaces during rendering, but nothing resolved the issue (pun fully intended). White levels could be somewhat fixed by turning Gain knob to 0.9 ~ 0.95 value, but it felt like cheating (I left everything as is in video comparison on purpose).
- Adobe Premiere is fast when it comes to actual stabilization part (assuming you have GPU acceleration available), just like Resolve is. However, analysis part is much slower (several times at least). This means that you will have to wait more to process the same clip as in Resolve, unless you have a really powerful CPU(s).
- Adobe Premiere is far more versatile when it comes to audio/video input and output formats containers & codecs support, similarly to VirtualDub. I had no trouble importing clips directly into it and start editing right away (no IMF conversion was necessary). It also supports Lagarith lossless codec both for import and export (only in AVI container). Adobe Premiere does have a problem with UNCOMPRESSED QuickTime .MOV 10 and 12 bits exports/renders from Resolve (had to use 8 bit mode only for compatibility). To be fair, neither MPC HC Player nor VLC Player could play such Resolve renders, either, so it was a missing decoder issue.
- VirtualDub Deshaker filter is last time updated back in 2014, which is a very long time measured in software years. Still, it has some kick left, and on occasion (more than once), it wiped the floor with both DaVinci Resolve 15 (version 16 was still in beta when this article was originally published) and Adobe Premiere CC 2019. In several smooth motion cases VirtualDub Deshaker achieved better results (much closer to ideal), however, that wasn’t always the case. In Virtual Tripod/Camera Lock/No Motion emulation modes Deshaker almost always loses; they are far superior in Premiere and Resolve. There is no fancy GPU CUDA / OpenCL acceleration available, which means all the work is done by your CPU alone and computations are very, very slow for the initial first pass if you set it to use every pixel and full frame resolution, including some other parameters that affect precision of initial vector analysis. Unfortunately, in most cases it will be outperformed by professional video editing software above in terms of speed, easy of use and final/end result. However, I will not discard it that easily for the time being!
As you can see from the examples presented in the video, none of the tools were consistently superior to the others. It all really depends on the source material and algorithms behind the scenes.
In the end, video stabilization is a very demanding procedure, especially if you work with long footage (short clips are fine). No software can replace mechanical optical / gimbal stabilization and perfectly emulate tripod with a virtual one.
For example, when I turned-off built-in optical stabilization in my ultrazoom camera, the resulting footage was literally unusable! There was absolutely nothing left to be saved in the post production, because many frames were smeared and fuzzy.
In virtual tripod modes, it all comes to tricking your brain/eyes, because software algorithms are not only correcting linear shakiness/motion, but also optical lens distortions. Take a careful look at examples above — ideally you should watch them on a large screen with 4k resolution (on phones/tablets smaller screens you’ll miss a lot) and pay close attention to details (corners, sky, static objects etc.) – you’ll understand what I mean…
However, video stabilization processing can make a near perfect and usable footage – trully perfect.