NokiMo
obsproject
obsproject

patreon


OBS Studio News: 30.1 Beta is out!

OBS Studio 30.1 is now in beta testing! Get the latest betas/releases here:
https://github.com/obsproject/obs-studio/releases 

In this release, we've added more features, improvements, and bug fixes that I'm pretty excited to share. (Note that this is not the Twitch Enhanced Broadcasting beta, that functionality is being tested separately. Please go here for more information).

Let's go over just a couple of the things going on in OBS development lately:

Notable OBS Studio 30.1 Improvements and Changes

You can now capture audio with game or window capture on Windows

During one of our UI/UX meetings, our residential UI/UX overlord said to me that it doesn't really makes sense that you can't capture the audio from a game you're capturing with the game or window capture source itself. For most of OBS' life, being able to capture the audio of a specific application (on pretty much any operating system) has been impossible without a third party tool. With 30.1, on Windows we've now added an option to the game and window capture sources which allow you to capture only the audio of the program you are capturing and nothing else, allowing you to turn off desktop audio capture and not have unwanted audio being captured if you so choose.

New version of the image slideshow source

I did not realize how important an image slideshow was for some people. When I made it, my original intent was that people could show off a few images; usually sponsors, aimed at professional gamers primarily. It was 2013 and Starcraft pro gaming was the main demographic of streamers. Coupling that with the fact that I wanted to make sure that it didn't impact the computer's performance or the stream's performance, I designed it to simply stop loading images after a certain number of images, because "why would anyone ever want to load this many images?" I thought to myself at the time.

I know. What a silly, naive assumption to make.

People wanted to use the slideshow for many more things than that, especially things such as showing artwork. So the arbitrary memory limitation became an issue, making the slideshow pretty much unusable for most people who used it show more than just 10-20 images. It was even worse if those images were large.

For years, it was stuck on the backburner. There have always been more pressing issues that we've had to dedicate time toward. We've had several attempts to solve the problem, but none of the solutions really worked to my satisfaction. Pretty much every solution ended up impacting the stream in one way or another. It required some more thoughtful engineering to make sure that the stream wasn't impacted by the decoding process. Image loading and decoding is costly, especially for larger images, and we cannot not afford to allow image loading and decoding within the render thread.

I finally decided that this issue had been on the backburner long enough, so I rewrote the image slideshow and used a thread to read and decode the images. It's a bit more of a complex design, but images will now load asynchronously without impacting the stream or OBS load time.

So finally, after goodness knows how long, I've rewritten the slideshow to allow as many images as you want in 30.1.

Improved Performance of Encoder Rescaling

Before 30.1, if you're someone who needed to stream and record at different resolutions for whatever reason, the rescale feature in advanced output mode would use the CPU to scale each video frame before outputting it to that encoder, which incurred significant CPU load. As of 30.1, we've now added GPU-based rescaling to utilize the power of the graphics processor and completely eliminate unnecessary scaling overhead.

New Linux Features

With 30.1, we've added a new video device capture source on Linux: the Pipewire video device capture source. We've also added support for AV1 with VAAPI. This continues our trend of continually updating OBS to the bleeding edge of Linux features and support. We're also working on supporting more native hardware encoder implementations for Linux, such as NVENC.

We have some very good contributors on our project, and I am very grateful that they choose to spend their time with our project.

What I am currently working on

Outside of reviewing code, having meetings and managing the project, the thing I am currently personally working on and have the most interest in right now is upgrading the rendering subsystems to modern rendering APIs. Right now, OBS uses Direct3D 11 on Windows, and OpenGL on Linux and macOS. We're upgrading those to Direct3D 12 for Windows, Vulkan for Linux, and Metal for macOS. The problem with staying on the older APIs is that they're basically not getting the support from vendors that they used to, and on top of that we're missing out on newer features that we could really benefit from in the future. As time passes these things become more and more of an issue. This is going to be a pretty big task but it'll be worth it. Plus it's a fun thing to work on.

There are a few things that I plan to work on after that which are tangentially related; mostly optimization and quality of life issues.

We are also working on integrating a new version of CEF into the browser source which may allow us to finally update the out-of-date Chromium version without impacting performance. If you recall how it went last time, this is usually a monumental effort due to the required patches OBS needs to get it to work properly, and I have no doubt that it'll end up the same this time.

Just a personal note

Other than that, I've been going through a lot of difficult life changes this past year, and even more so these past few months. I made a big personal decision for myself around a year ago; it's probably obvious what decision that was. And it's been hard. Real hard. Much harder than any decision I've ever made in my entire life. It's caused conflicts in my life between myself and people I love who don't understand it, who don't want to understand it, and who don't want to support it. And that fact became an almost oppressing atmosphere of loneliness and despair for a while. This past year has been a major struggle for me because of that, a struggle that I've had to get through alone with no one to really rely upon but myself.

However, it was also the best decision I've ever made for myself. I've gained so much, I've learned so much, and it turned my life around. I'm more happy with how I feel about myself than I've ever been. And due to the events around my decision, I've gained so much insight not just into myself, but into the world, into people I know and love, and I've gained so much character development that I've been truly needing. I've gained so much more self-reliance. I still have much to do and it'll still take a long time to see everything through, but I don't regret my decision what-so-ever, and I never will. It's been a very difficult journey, but it's a journey that, at least for me, has been absolutely worth taking. It is a fundamental part of who I am.

Anyway, sorry for the rant, I guess it's just something I've been wanting to say for a while, to somebody, anybody.

Thank you all very much for supporting the project! I hope you continue to find our project useful as it continues to grow and evolve.

Comments

Very good thank you so much <3

MiChElLsWe

Ah I'm really looking forward to game capture with audio! Thank you for your work and your post Lain, and I hope things improve for you! 🩷🤍🩵

Cait M

Thanks a lot for your help with your OBS Project! I always apreciate your Work!

DAVID SEGURA

Hi there! Could you report it on the #beta-testing channel of our Discord server, or could you post an issue on our Github issues?

Lain

When I installed the beta, I got a message saying "Could not find virtual camera." when starting virtual camera

Felippe Nardi


Related Creators