With every article, I try to set a new limit for "least interesting technical content on the web". I believe I've achieved that goal today.
Your options for working with video on GNU/Linux are both wide and limiting. I’ve tried almost every NLE available for GNU/Linux, but these are the ones worth mentioning:
- DaVinci Resolve—the subject of this article. It’s proprietary and very professional at a great price, but comes with some disadvantages I’ll cover later on.
- Lightworks—another professional, proprietary NLE. It has a good range of tools for editing and color correction/grading, but it’s primarily used during the cutting process. That being said, it’s a great option if you need some more advanced features and doesn’t have too steep a learning curve.
- Kdenlive—the most advanced free software NLE for GNU/Linux. It has a lot of tools available in Lightworks and some from DaVinci Resolve, but they are usually harder to access and use and less effective. It also doesn’t have hardware acceleration for video playback so you’ll need to work with proxies a lot. Significant performance and interface improvements are slated for release sometime soon, so hopefully Kdenlive will improve.
All three of these NLEs are cross-platform, so you can collaborate easily. DaVinci Resolve and Lightworks also export to interchange formats you can use to make roundtrips to other programs more easily.
DaVinci Resolve ought to be the no-brainer choice for working with video on GNU/Linux. Not only is it a great NLE, it’s the most advanced color grading tool in existence. Almost all the features are completely free. Even if you need features from the Studio edition, it’s astonishingly cheap to obtain a lifetime license you can move around to any computers, and continue to receive all major updates, forever.
So, what’s the catch? Let’s talk about it…
DaVinci Resolve Does Not Support H.264 and AAC Encode/Decode
Specifically, it does not support these codecs on GNU/Linux. You may not be familiar with the technical codec names. Would it help if I referred to them as the codecs most commonly used with MP4? Yes, the most ubiquitous video format in the world. Resolve doesn’t support MP4.
Why H.264 Decoding/Encoding Isn’t Supported
They are supported on Microsoft Windows and macOS, though. Why is that?
The short answer is “licensing issues”.
But I'm sure what you really want is the long answer.
H.264 is a video codec standard created in 2003 by various standards groups. If you don’t understand what a “video codec standard” is, think of it as a mathematical formula for storing video. H.264 is a lossy compression standard, which means fitting as much into as small a space as possible using neat tricks, and throw out any data that isn't very important to the overall image. The goal of H.264 (also called AVC) was to create an efficient (low file sizes while retaining perceptible quality) codec that anyone could easily use. And they were very successful. It somehow became the de-facto video standard of the web despite being encumbered by patents.
And there’s the rub—patents. MPEG LA administers the patent pool for H.264, which consists of thousands of patents for the many parts of the H.264 standard, including extensions introduced years later. The patents themselves are owned by several companies, including Panasonic, LG, Google, and Microsoft, among many others.
Neither the people who created the H.264 standard nor MPEG-LA provide production-ready encoders/decoders, although they do provide a “reference implementation”, which is an idea of how developers can accomplish it. What they’ve done is essentially provide documentation on how the codec works so other developers can create encoders and decoders for H.264. The catch, however, is that in order to convey one of these programs to users—say, in a video player like VLC—you need to pay royalties to the MPEG LA patent pool to obtain a license to use the codec, for every user.
In reality, VLC does not pay royalties to include the H.264 decoder supplied by ffmpeg in the program. There are two possible reasons for this, and it is not clear to me which, if either, is true.
The first is that the royalties only apply to commercial applications. VLC is not sold by VideoLAN; instead, anyone can download it directly from their site.
The second is that VLC is hosted in France, a country which does not recognize the legality of the software patents MPEG LA has staked their business on. The reality of this legal situation is far more complicated than that, but let’s not get into it.
DaVinci Resolve is hosted by Blackmagic in several countries which legally recognize software patents and it is used in commercial applications. And besides that, Blackmagic is definitely big enough for MPEG LA to consider pursuing to shake money out of them.
H.264 isn't optimised for editing, either. It will be slower than codecs like ProRes. This has less to do with the file size and everything to do with the architecture of the codec. Compressed codecs like H.264 are designed for small file sizes. This is useful when you have limited bandwidth for, say, a streaming service, but not so much for editing. It's more expensive to decode a compressed codec than an uncompressed codec like Prores or AVI. Video playback in an NLE like Resolve is less expensive with an uncompressed codec This isn't even getting into the fact that H.264 is a lossy codec.
Why AAC Encoding/Decoding Isn’t Supported
It’s the same deal as H.264—the existence of thousands of active patents. The MP4 format usually includes AAC for the audio track, making this issue even more complicated. Without an audio track, you would be rendering a silent video.
Why is DaVinci Resolve Able to Decode/Encode H.264/AAC on Windows and macOS?
So, why doesn’t Blackmagic just include encoders and decoders for H.264 in the program and charge for it, you might be thinking after reading the above. The short answer is they don’t need to. Windows and macOS already include those encoders/decoders by default in their operating system, which are available to programs like DaVinci Resolve.
GNU/Linux distributions also usually provide H.264/AAC encoders and decoders, although some distributions have stripped them out of the main install for fear of legal issues. The difference is these encoders and decoders are the ones provided by ffmpeg, which doesn’t have a license to encode/decode H.264 or AAC. Most GNU/Linux distributions are also not sold to users, and are instead freely available.
It would be legally difficult for DaVinci Resolve to make use of these encoders and decoders provided as system packages.
Alright, Why Doesn’t Blackmagic Design Just Charge More For the Linux Version, then?
There are two reasons worth considering.
The first is that most production companies with Linux servers are not working with lossy codecs like H.264; they’re using lossless codecs like ProRes for smoother editing and to retain maximum quality for higher quality grades, and they’re also delivering in that same quality. You compress your video after you've gone through the cutting, color grading and finishing process; for final delivery. You want uncompressed files that retain all the data during the editing process. Blackmagic Design doesn't even sell a video camera capable of recording H.264 footage; it's all uncompressed! I assume it's similar for audio; they're most likely recording in PCM, not AAC.
Even if they were going for a H.264 encode in the end, they most likely are not using Resolve to accomplish that. Their encoder (I’m referring to the job title this time) will use dedicated software to produce a high-quality and highly-efficient encode that suits the footage, and the Resolve team will use a lossless codec pair to transfer the finals to the encoder. They simply don’t care about H.264 or AAC encode support in Resolve.
As a result, only a thin minority of Resolve users are impacted by this lack of support.
The second is price. DaVinci Resolve historically cost hundreds of thousands of dollars before it was acquired by Blackmagic Design. They impressively transformed DaVinci Resolve from only being available on Linux servers to being available on macOS and Windows, and brought it out at an eye-watering $1000 price point.
Then they acquired Fusion and Fairlight, tightly integrated them into Resolve, and halved the price. They added two entirely new domain specialties and brought the price down! They have never offered a subscription, and the free version’s features are enough for many users to never consider the Studio version.
When you buy a Studio license, however, you can install Resolve on Windows, macOS, and Linux. You can easily move the license around if you change computers—no need to contact support.
What’s more, if you buy one of their super expensive cameras, they’ll chuck in a copy of DaVinci Resolve Studio along with it.
This is absolutely crazy.
Increasing the price is something Blackmagic Design has never done, and it would complicate the cross-platform usage of the license for one platform to cost more than another. It just makes things more complicated for the sake of solving an issue only a small number of their lowest-end customers have.
A sad reality.
But there are some things you can do to make your life easier on GNU/Linux with Resolve.
Hardware Encoding/Decoding With NVIDIA
NVIDIA provides hardware encoding and decoding for H.264 with their GPUs using NVENC. This is actually legally licensed from MPEG LA, so there’s no problem with DaVinci Resolve making use of it.
You’ll need the Studio edition of DaVinci Resolve to take advantage of this, however. The other downside is that hardware encoding produces worse results than software encoding, even though it’s faster.
If you do this, however, you’ll still be left with a silent video, because the Studio edition does not provide AAC decoding. You’ll need to transcode the audio track to something Resolve does support first, then bring the clips in. A little annoying, but it’s actually workable.
AMD also provides hardware decoding/encoding, but neither version of Resolve makes use of it. You’ll need to get a NVIDIA GPU.
Third-Party AAC Encoders For Increased Comfort
You can also purchase a third-party AAC encoder for DaVinci Resolve for around $100. Paired with the Studio Edition and a NVIDIA GPU, you can create a hardware-encoded H.264 + AAC render in DaVinci Resolve! For most people, this should be enough. In the worst case scenario that you're using an AAC audio track in your source footage, it's quick and easy enough to transcode the track.
Transcoding AAC Audio to a Codec Resolve Supports
You need to install ffmpeg. Then run this command on your source footage:
ffmpeg -i source.mp4 -c:v copy -c:a pcm_s16le source-transcoded.mov
You'll end up with a video file you can import into the Studio version of Resolve. This command copies the video codec but transcodes the AAC audio to PCM.
There are other methods, like creating a compound clip. You can also automate this method with incron—passthroughpo.st has a fantastic article series on making Resolve (and related video production software) work on GNU/Linux, but if you're only interested in automating the task, take a look at the Auto-Transcode Your Footage section near the bottom of this article.
Patent Expiry Dates
It's kind of tough to know when these patents will expire for a number of reasons—chief among them being how many there are! Until 1995, "submarine patents" were possible too, and were employed with the mp3 codec. Fortunately, this loophole was closed before H.264 patents were registered. However, we don't even know if all of the patents filed for H.264 are valid. End Software Patents has some information on how invalid patents can remain unchallenged, citing a 1990 case where Sun Microsystems paid IBM 20 million dollars for patents that may or may not have actually existed.
Crazy stuff. If you thought the 1201 Section of the DMCA was bad enough, you haven't seen patent law yet.
Nonetheless, we can make an educated guess on expiry dates which should be generally accurate.
When Do H.264 Patents Expire?
More than half of H.264's patents are already expired, but there are hundreds left. The last H.264 patent is due to expire sometime in 2027, 2028, or even 2030, depending on who you ask. It’s possible that, after one of these dates, Resolve will include H.264 support in one of their editions for GNU/Linux. Can you wait that long?
When Do AAC Patents Expire?
The last AAC patent is due to expire sometime in 2028, and the last extension in 2031, as far as we know. Resolve may include support for AAC after these dates.
What About AV1 Encodes?
AV1 is a promising option! This codec is the result of some of the largest technology companies in the world getting together to form an Alliance for Open Media so they don’t have to pay MPEG LA any more license fees. It’s completely royalty-free and DaVinci Resolve 18 includes encoding support for it.
The weakness is that most users don’t yet have hardware decoders for AV1, so it will be more costly for them to decode AV1 video. As the years tick on and AV1 matures, users will buy new hardware which includes hardware decoding support for AV1 and we’ll be in a good spot.
Of course, this day will likely coincide with H.264 becoming patent-free, but AV1 is a step up in efficiency. Well, you’d have to ask someone more familiar with AV1 for a more detailed opinion.
I have no idea if Resolve provides a good encoder for it, but video hosting platforms like Vimeo and YouTube will accept AV1 encodes and transcode them to other web-safe formats for viewers with different requirements. It’s worth a shot!
There isn’t a camera I’m aware of that records in AV1 yet. That being said, you can’t always choose your source footage, but it’s good to record in a lossless format and in log mode to give yourself the best chance of working with the footage in Resolve anyway. Recording in a lossy codec like H.264 or AV1 is a bad idea if you’re concerned about quality.
What About Cinelerra-GG?
Cinelerra-GG is a free software NLE with some more advanced features than Kdenlive and a clunky interface. It’s one of the oldest. I have a soft spot for this one and find its history deeply interesting. I used it for a while, but some things are rough, and while it gets a monthly release, new features aren't landed often. It's my understanding that Cinelerra needs to be refactored in a major way to fix deep issues. For example, many processes are single-threaded, and Cinelerra can't properly take advantage of hardware acceleration even though it has support for it.
It’s only available for GNU/Linux, so collaboration options are limited. However, the community is very friendly and knowledgeable about video. You should definitely check out the manual if you want to learn a thing or two. It’s some of the best damn documentation for free software around.
And, hey, you could always try getting it to run on Android…
So, Should You Use DaVinci Resolve?
If you like DaVinci Resolve, go ahead! If you follow the tips above, you should have a decent experience even if your source footage is H.264/AAC. If you’re just looking for a professional NLE, though, I recommend Lightworks. It supports H.264/AAC encode and decode with both its free and paid plans. It has some really neat features, too.
The workflow can take some time to get used to, though it is superficially similar to Resolve. I found myself quite liking it. The color tools in Lightworks are good but don’t have some of the advanced features present in Resolve. There’s a good range of scopes but Resolve’s are better and more varied. They are, however, a lot better than most other NLEs. Resolve is in another class entirely, because it was originally designed for colorists and no one else, and later became an NLE. The color tools should be enough for most people.
I recommend Lightworks over Kdenlive because it uses the GPU for hardware acceleration, meaning there are no freezes or hangups in Lightworks. It’s always fast and responsive. Kdenlive is bound to the CPU for now, though hopefully future performance improvements will change that.
The Create plan is very cost-effective at $9.99 USD a month, and you get less hassle with the experience than Resolve. The only issue is you need to contact support when you want to move or upgrade your license. I decided that was worth it for me.