When I started with VoiceFX, my original goal was to only support VST 3.x, as it was the most modern version of the SDK, and surely by now every important software had moved to it. Unfortunately I didn’t account for the occasional big shot releasing a modern product with a relatively ancient version of the SDK – an SDK that no longer officially exists. So what do you do in this situation?
You do what every other totally sane developer does and start a clean-room reverse engineering project for the now abandoned VST 2.x SDK, staying faithful to the law. And finally, after roughly 5 months of development, I managed to make it work. So how did I get there?
It has been a while since I last checked out AV1, but even then AV1 was still dominating in quality and compression. Now it’s time to revisit the tests I’ve done back then, so grab a coffee, take a seat, cause this is going to be one long ride.
Every since publishing the guide on how to achieve the best possible NVIDIA NVENC quality with FFmpeg 4.3.x and below, people repeatedly ask me what the best possible recording settings are. So today, as a Christmas present, let me answer this question to the best of my knowledge and help all of you achieve a quality you’ve never seen before. Read the full guide here.
Long story short, I got tired from having to look at white checkboxes on gray background in OBS Studio, and decided to make my own theme. I picked deep blue shades for this, as it’s a color I’m familiar with, and one of the colors that still has reasonable contrast when layered on top of another. This is what it looks like.
It’s available for Patreon and Github supporters now, and will eventually be publicly available once it’s done. The current version is 75% complete lacking only some elements, such as menus, tooltips, font picker and other similar elements. In my opinion this is much easier on the eyes than the default “Dark” theme, and I’ll most likely be using this from now on.
So in order to best approach reality, I have to figure out which APIs are available at any point in time, and also run performance benchmarks in current major browsers available to me. And that’s what todays post is about, finding which of the various methods is fast enough for high performance use.
Around the end of last week, my Alphacool waterblock decided that it was time to kill the NVIDIA RTX 2080 Ti Founders Edition it was placed on. That was the day I learned that burning PCB and plastic smells the same as coal – and that I should probably replace my smoke detectors since they didn’t go off at all.
That meant I needed a new GPU, and after a bit of search for actually available GPUs, I ended up going for the 3090 cards – nobody apparently has 3080s, only 3070s and 3090s. The card I ended up with is the Gainward RTX 3090 Phantom, which has some limitations but otherwise works well. Let’s get into the hard stuff.
NVIDIA certainly wasn’t idle in the last two years, that much is clear. Their jump from 12nm to 8nm should set the average standard for what we should expect from moving nodes while also improving on the generation. This generational leap is what we should have seen from the 20xx series, which now seems like overpriced junk – so sorry for anyone who bought them in the last 6 months and can’t return them. Let’s go into a bit of history and detail.
The AMD side: Shrinking 14nm to 7nm
Three years ago in 2017, AMD RTG tried to even the playing field by moving from 14nm to 7nm, and succeeded. Their new RX Vega generation, while extremely power hungry, did improve performance across the board by roughly 30-75%, depending on what you looked at. And in 2019 they improved on that, with the RX 5000 series – except this time we saw practically no (<5%) performance increase, but they did cut down on heat generation and power draw quite a lot.
Due to the new GPU generations being released by the two major vendors (and soon three major vendors), I’ve currently put the project on indefinite hold. The current discoveries still hold for all existing encoders, which makes newer tests unnecessary for the time being. Even the early runs have not resulted in different settings compared to before.
For the time being, I’ve left the old data online, while I quietly work on making a new, more user friendly version possible. Perhaps I will even allow user submissions in order to increase the number of tested GPUs, but that requires a lot of hosting storage.
A lot of time has passed since the 0.8 release of StreamFX, and since then a lot of code has been submitted and tested. A ton of issues have been fixed internally, making everything work better, and a lot of new features are being worked on. Let’s take a quick look at the already confirmed additions!
The FFmpeg Encoders are now available on Linux!
You can now use the fancy NVENC UI/UX from StreamFX on your Linux machine! While zero-copy is not supported due to a limitation in OBS Studio itself, all the encoders should be available to you as long as you have the necessary system drivers. This limitation is not something I can work around, so if you need zero-copy you will have to stick with Windows, or find an alternative solution – or just learn coding and write the necessary code in OBS Studio.
Have my projects helped you reach your goal? Then consider supporting me continuously through Github, Patreon, or consider a one-time donation via PayPal! Every bit helps keep this site and all the projects alive.