Skip to content

Instantly share code, notes, and snippets.

@mcdonc
Created March 8, 2024 07:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mcdonc/c2e00f55886aee53259a7b6124f67c56 to your computer and use it in GitHub Desktop.
Save mcdonc/c2e00f55886aee53259a7b6124f67c56 to your computer and use it in GitHub Desktop.
Transcription of raw recording of https://www.youtube.com/watch?v=6aVIBOmj0Ak
The state of open source nonlinear video editing on Linux is pretty good. Your needs are pretty basic. Two reasonably good editors exist that I have a lot of experience with. Kadin Live and Olive, these both work fine.
But Kadin Live's UI is strange. It can be a little crashy. Olive's no longer maintained by its author. I hope somebody else picks that up. I really like Olive. There's a number of other contenders, but they all have one fatal flaw or another.
Of course I knew about DaVinci Resolve. I'd even used it to make one video a year or two ago on Linux.
But my needs are incredibly basic. I'm basically producing videos that capture OBS screen output. And I put a voiceover over top of them. And usually it's not even a voiceover. It's just me talking while I'm clicking things on the screen.
DaVinci Resolve. DaVinci...
I knew about DaVinci Resolve. I'd even used it to make one video about a year or two ago. I used it on Linux.
My needs are incredibly basic though. And it quirks around import and export. It just kind of turns me off to it. It quirks about import and export. I make videos...
The videos I make are basically OBS screen recordings with me talking over top of them. And then I just need to cut them up.
And publish them.
And publish it on YouTube.
Incredibly basic.
So the quirks of Resolve.
So the import and export quirks of Resolve made me bounce off of it.
So the import and export quirks of Resolve made me bounce off of it. But then I saw a YouTube video that showed the audio transcription and text editing features of Resolve Studio 18.5 and better in the paid version. And I knew I must re-investigate. And I knew I must re-investigate the quirks and if possible circumvent them. And possibly possess it.
There has seemingly always been a barely traversable minefield of gotchas around. Using DaVinci Resolve on Linux.
The minefield itself is truly a work of art.
It has that "You Linux Trash are not our target market." So here's why.
It has that "You Linux Trash are not our target market." So here, why don't you spend an entire day figuring out whether or not it will work for you at all and oh and fuck you too.
It has that "You Linux Trash are not our target market." So here, why don't you spend an entire day figuring out whether it will work at all for you.
After you understand the minefield, depending on your level of submissiveness, find out after you understand the minefield, depending on your level of submissiveness,
you may find that it, after you understand the minefield, depending on your level of submissiveness,
you will find that it may or may not be suitable for you.
By the way, it doesn't matter if you want to pay money for it. You're a Linux user and therefore you really don't matter. It doesn't matter how many thousands of dollars you might perform and we wave around. It doesn't matter how many thousands of dollars you might perform and we wave around. Really, it doesn't matter how many thousands of dollars you might perform, it doesn't matter how many thousands of dollars you might perform. Real video editors use Mac, second class ones use Linux, we don't even know what class you're in, you fucking weirdo. You should be glad it even exists.
This is ironic because I believe DaVinci Resolve was originally a Linux only product and it cost thousands and thousands of dollars.
But these days it's only $300 for a forever license.
So I guess some cost cutting concessions had to be made. Linux feature parity with its Mac and Windows variants seems to have been one.
Now apparently, I'm the bottom in this relationship because I ended up buying Resolve Studio.
Most of what I'm going to mention in this video relates to the studio version, the paid version, and the version that I'm going to use. The studio version, the paid version, although I will discuss the differences between Resolve and Resolve Studio with those feature parity as I've encountered them.
As I've encountered them.
Let's talk about the minefield of gushes. I really should make some sort of chart for this, but I'm way too lazy.
Here's what doesn't work on Linux or Windows. Here's what does not work on Linux or Windows in any version of Resolve.
Any system without discrete graphics. Meaning a dedicated GPU.
I'm not even sure they consider Intel Arc a discrete GPU. I'm not sure. As far as I can tell, Resolve requires an AMD or Nvidia card. And really, in practice, an Nvidia card. And really, in practice, a really beefy Nvidia card, not some wimpy one.
More on this in a bit.
Here's what doesn't work on Linux or Windows in the free version. Not Studio. Just DaVinci Resolve. Here's what doesn't work on Linux or Windows in DaVinci Resolve. These do work in the Studio version, the paid version.
H.264 video decoding. H.265 video decoding.
H.265 video decoding.
Audio transcription, text editing, and some other AI features.
Here's what doesn't work on Linux either in the free or the paid versions.
AAC audio decoding. Meaning importing.
Meaning importing clips that have AAC audio like every camera produces.
Like every phone or camera produces. AAC audio encoding.
Like YouTube wants.
Accelerated encoding. Accelerated video encoding. On AMD GPUs and possibly accelerated video decoding on AMD GPUs.
Accelerated video is only a thing for Nvidia.
If you're producing content mostly for YouTube using Resolve on Linux,
is less convenient than using it on a PC or Mac due to the non-support of...
If you're producing content mostly for YouTube using Resolve on Linux is less convenient than using it on a PC or Mac because of the non-support of AAC audio. You almost always have to transcode your content for import because most consumer cameras and phones produce H.264 video with AAC audio.
Produce H.264 video with AAC audio in an MP4 container. Neither Resolve nor Resolve Studio on Linux can cope with it.
Are we starting to get the picture?
If you produce footage with OBS, it can be convinced to use a Matroska container, an MKV container instead of an MP4 container. But it can only encode to AAC or Opus, meaning OGG audio.
Resolve can't use AAC or Opus audio so like camera footage, transcode it you must.
If you are an AMD user on Linux, you must use the proprietary AMD GPU Pro drivers
and use the Open Source drivers that ship in the kernel.
They are the drivers that AMD supplies from their website. They are apparently crap for gaming.
As I mentioned, as far as I can tell, you must have an Nvidia card for any accelerated video. I believe for any accelerated video, you must have an AMD video card for any accelerated video. As far as I can tell, you must have an Nvidia card for any accelerated encoding of video and I think maybe even accelerated decoding of video like playback, not sure.
They seem to rely on CUDA, which is an Nvidia thing heavily for many features. I do not have an AMD card to use to confirm. I don't have an AMD card to use to confirm this.
Since the primary platform as far as I can tell for Adventure Resolve is macOS, and since Intel Macs have always been AMD, why there is no AMD why there is no accelerated encoding and decoding of video under an AMD GPU,
who knows.
Since Intel Macs have always had AMD graphics cards, why there is no accelerated video encoding or decoding using an AMD GPU,
who knows. We don't know.
So,
we have discovered that we should have an Nvidia card in practice.
What is that you say? Oh, oh, oh, you have a GTX 1030. Oh, well, fuck you, you poor. That only has 2GB of RAM on it. Resolve won't even get out of bed unless you have 4GB of RAM on your GPU. That is the very minimum, like scraping the barrel minimum.
This means that you need at least a GTX 1050 Ti or a Quadro P1000.
No, fuck you, it won't fall back to software for this stuff. Your 64GB of system RAM is useless.
Okay, now you have a 4GB video card. Great, now you have a 4GB GPU. You can actually enter the Resolve UI.
But that's about all you can do.
Hey, great, now you have a 4GB GPU. You can actually start Resolve and enter its UI. You can even start to edit things.
But, with only 4GB of GPU RAM, its tendency will be to complain at you incessantly and refuse to complete most minimally complex previewing AI and rendering tasks without workarounds, magical... without workarounds or magical incantations and maybe not even then. You really should have at least 8GB of GPU RAM.
And that's really only for basic editing with a single track on the timeline at 1080p without any effects.
Now if you want to edit with effects in 4K, fuck you. Buy a current gen $1000 video card with 24GB of RAM.
Now if you want effects and you want to edit in 4K, fuck you. Buy a current gen Nvidia GPU with 24GB of RAM in it for let's say $600,000, $700,000, $800,000, or $1,000.
There you go.
And hey, hey, hey, hey, by the way Resolve is only officially supported on Linux.
And hey, by the way, Resolve is officially only supported on Linux via CentOS today. Yeah, you heard that right. Yeah, that's the OS that was abandoned by Red Hat that they no longer support or use.
Yeah, no, you heard that right. That's CentOS. Yeah, Red Hat, the one that they no longer support.
Now unofficially, Blackmagic supports it on Rocky Linux, at least via its forums.
There are probably unofficial packagings of
Resolve for all the popular Linux systems. Some poor soul has spent a lot of time some poor soul has even spent a lot of time to containerize it. It has come to that.
However, in practice, I think the easiest distribution to use DaVinci Resolve, both the free and the paid versions on, are ironically NixOS.
Both of these pieces of software have been packaged for NixOS thanks to the hard work of people named Josh Campbell. I think that's...
I'm reading his handle. And OreveJ, not sure who that is. But thanks to their hard work, if you use NixOS, you need to think about Rocky Linux containers or any of it. You just add DaVinci Resolve or DaVinci Resolve Studio to your system packages and it works.
The current version packaged for NixOS is 1865.
Are you still with me? I told you it was complicated.
Now we've gotten through the minefield. On the other side of this minefield, we have another minefield. While traipsing around the previous minefield, you may have come to terms with the fact that we must transcode input footage. That might be okay with you.
I use the studio version Resolve, so I transcode my input footage to H.264 with PCM audio into a Matroska MKV container.
Resolve Studio is fine with that. I do this because I have an Nvidia card, a Quadro P1000,
that does hardware accelerated H.264 encoding via NVENC.
And this combination of video and audio encoders produces a reasonably small transcode. Produces a reasonably small transcode reasonably. Produces a reasonably small transcode reasonably quickly. God, I can't fucking talk.
This combination of video and audio encoders produces a reasonably small transcode reasonably quickly.
I will show some FFmpeg commands to transcode any MP4 into a Matroska container with H.264 video and PCM audio.
Now, if I were using the free version of Resolve, I would not be able to use H.264 as an input video format.
The previous command that I showed you, the previous FFmpeg command, would not produce something that Resolve could import.
I have found through trial and error that instead I would want to use AV1 video encoding.
It's slower, but Resolve can import the result.
Here is a suitable FFmpeg command line to import any, to transcode any MP4 video into a Matroska container that uses AV1 video and PCM audio.
I would also want to use AV1 video.
If I didn't have hardware accelerated, I would also want to use AV1 video if I didn't have hardware accelerated H.264 encoding.
This libsvtab1 svtab, the best svtab1
svtab, libs svtab.
This libsvtab encoder is surprisingly faster than software H.264 encoder, at least on my machine, and at least for the kinds of footage that I'm transcoding.
Okay, you, pleb.
We're about ready to fire up Resolve. We've transcoded our footage, and look what I found some other minds. Resolve badly wants to be used in a dual monitor setup. It wants to consume an entire monitor for itself. It always starts at full screen size, and it wants that monitor to be at least 4K resolution on Linux. If it's not, bizarre shit happens. Like at 1080p, where menus, the menu bar, and the titles of the menu bar are cut off on both sides of the screen, some UI elements are simply unclickable, because they're offscreen and you can't drag windows. So, for all you people who want to use 1080p, fuck you and your 2016 era resolutions.
Which is ironic on Linux, at least, because when it is 4K, it's totally unreadable. You have to go to the preferences, user, UI settings, UI display scale, and change it to 150%. Fuck you.
Okay, so now you have a 4K monitor, and you figured out how to scale the UI so you can actually read it. But you only have one monitor. Oh, you poor bastard.
You'll want to resize the Resolve window. Well, fuck you.
Figure out that you need to drag it out of full window mode by holding down the super key and left dragging the title bar.
Oh, and hey, hey, hey, and figure out that after you snap it out of its full screen mode, you still need to use the super key while you drag it around.
Oh, and hey, hey, hey, hey, figure out.
Oh, and hey, figure out that after you snap it out of its full screen mode, you still need to use the super key to drag it around while you hold its title bar. And while it's not full screen, fuck you. The UI might or might not be usable due to inconsistent scaling. And fuck you.
And we won't respect your desktop's window decorations. You won't even get a close button. You don't need one. Fuck you. I mean, basically, fuck you.
Alright.
So you've imported some video. Hey, maybe you want to record a voiceover. Maybe you want to do that right in Resolve.
Resolve has this awesome audio suite named Fairlight
that can do this. That is capable of recording audio. But on Linux, I hope you like all your audio inputs and outputs, all your audio inputs.
I hope you like all your audio inputs named Alsa.
Literally Alsa, with no way to distinguish them apart.
Blackmagic has renamed them, so they don't even bear a relationship to the output of like A play dash L. They're all just literally named Alsa, and a number.
So fuck you. Try all of them.
What's that you say? You tried all of them, and none of them seemed to work? Fuck you. Use audacity, you loser.
So we've managed to produce something with both video and audio in it, and we want to render our content for upload to YouTube.
Well, YouTube is optimized for H.264 video and AAC audio in an MP4 container, but you remember in one of our minefields that we can't use AAC on Linux because fuck you.
And we can't put MP3 or PCM audio in an MP4 container inside of DaVinci Resolve because fuck you again.
So I render to H.264 video and MP3 audio in a Matraska container. Because all my systems can accelerate H.264 rendering, and YouTube is fine with this. I have no need to trans-call what Resolve shits out before uploading it to YouTube. Your mileage may vary. My needs are very basic. I don't even use stereo sound. Another option would be a QuickTime container with H.264 and MP3 or PCM audio. But the Matraska thing with H.264 and MP3 work for me.
It's not mistaken with it.
Once you have a render, if you were using Resolve under Windows or Mac OS, you can use Resolve itself to upload your video to YouTube. That'd be pretty cool. But that doesn't work on Linux because fuck you one last time. Use a WebUI you monkey.
So was it worth it?
Yeah.
I'm afraid so. Resolve has features I love. The editing features are great. They're really great. The way you edit audio and video is fantastic. It has a nice audio normalization feature that lets you just click a button and it will make your audio better. It will make your audio what YouTube wants. You don't have to mess around with levels or loves or any of that stuff. Really nice.
The audio transcription and text editing feature is amazing.
You click around and select sentences.
They are related to time codes in the video. You can select a video by just selecting the text. It is amazing. It's fantastic.
Now, on my system, because I'm a pleb and I have a 4GB Quadra P1000, it often runs out of GPU memory while I'm using the audio transcription feature.
Ironically,
changing my desktop resolution, the 1080p, instead of 4K,
gives it enough headroom to finish most transcription jobs. I can then change back to 4K to actually edit the video.
I think I've also seen it get enough headroom to finish
by changing the GPU processing mode to OpenCL, although it goes much slower. It's not using CUDA, but that might have been a fluke.
It's Cloud cars to use Resolve and 1080p. It barely works. But, fuck you.
One other benefit to it, and this may be the killer benefit,
I'm afraid to say, but there are a billion tutorials. There are a billion tutorials on YouTube.
By 20-somethings with bokeh backgrounds and shitty USB mics. Pepe copy.
Pepe copyright free music trying to sell me garbage.
It's actually very useful. There are strength in numbers. So yeah, it was worth it for me. If only for the audio transcription and text editing features.
I feel shame, but it was worth it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment