What is the BEST video stabilization software / algorithm in existence today? What software should I 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:
- Blackmagic Design DaVinci Resolve (free edition available)
- Adobe Premiere CC 2019
- VirtualDub Deshaker Filter (free)
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 handheld recorded clips with my phone, when I regretted not having tripod with me, non-stabilized drone footage, all the way down to some casual recordings made with 50x ultra-zoom Canon SX50 HS camera (which has excellent built-in optical stabilization). It took me a couple of weeks 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:
- 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 desktop computers 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 — in case of laptops, the upgrade to external graphics card may be a bit more expensive and bulky solution unless you replace entire computer). Resolve aims at professionals, studios and artists, which are assumed to have at least one decent system 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.
- 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). Good news is that analysis is performed only once initially, regardless of your stabilization mode changes and tweaks later (this is also true for VirtualDub Deshaker, but not the case with Resolve). Keep in mind fast CPU and large memory requirements (at least 8 GB RAM) for analysis stage; in several complex cases (very long 4k clips) analysis stage failed on systems with just 2 GB RAM, which is very frustrating.
- Adobe Premiere is far more versatile when it comes to audio/video input and output formats containers & codecs support, similarly to VirtualDub (VirtualDub is still the best in this regard, since it will chew anything it can load/understand, regardless of non-standard/uncommon mixing codecs and containers, plus it supports various input drivers like DirectShow and ffmpeg). I had almost no trouble importing clips directly into Premiere 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; that kind of algorithms are far superior (although not perfect) 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 set to maximum tele, 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.
Good scene lighting and short exposure per each frame is the key for the (potentially) successful stabilization later. In low light and less-than-ideal light conditions your results will greatly vary unless you use high-end low-noise video equipment. Results in low light with standard equipment (consumer cameras, phones, tablets) may be better, yes, but professional movie-like quality? No.
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 and perspective distortions as well. 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 – truly perfect.