Improve documentation.

layarion

Member
A lot of these settings in OBS are not self explanatory, and there is a lot that the online manual doesn't cover. Such as:

"Preset" Does high performance reduce dropped frames, or does it only lighten the work load on the GPU?

"Profile" how does High444p compare to the other options?

Better documentation, as well as making it easier to find (no link anywhere on the application to the document i found, no tooltips) would keep some questions from needing to be asked on the forums. I shouldn't have to "experiment" to get answers that someone else already knows the answer to.

Finally, i can't use the "simple" templates because I don't know that the person who made those profiles understands what my needs are and has them built into those profiles. Part of the problem is those profiles do not tell me what settings they use exactly nor do that really give any sense of what they do. The real nail in it for them is they don't allow multiple audio tracks. These profiles should be explained, in detail.
 

RytoEX

Forum Admin
Forum Moderator
Developer
I'm not as familiar with encoder settings as some other people on these forums, so if I misrepresent something, I hope they'll jump in to help clarify any mistakes I make.

Generally speaking, for recording, the settings in this guide should be sufficient for most needs. Settings for Advanced Output Mode are listed below the simple output mode settings. Streaming is a bit more complicated, because different streaming services may recommend or require different settings.


The settings that you're talking about (the presets and profiles you mentioned) are hardware encoder presets. I don't believe any of the presets or profiles (except perhaps the presets labeled "low latency") would affect network conditions leading to dropped frames. It may be important to note that dropped frames are a network connection issue, while skipped and lagged frames are encoding and rendering issues, respectively. Setting bitrate too high could saturate your Internet connection, leading to dropped frames, but you didn't seem to be asking about bitrate specifically.

The encoder presets and profiles aren't really a feature specific to OBS, but rather the encoders that OBS is using. The documentation for those encoders should have the information that you're looking for. If you want to dig deeper, since OBS uses FFmpeg's NVENC implementation, FFmpeg's documentation or Nvidia's documentation should answer your questions about NVENC encoder settings. As far as I can tell, for NVENC the "High Performance" presets are akin to the "faster" x264 presets (ultrafast, superfast, veryfast) - they work faster while sacrificing quality or output size (better throughput performance). The "High Quality" presets are akin to the "slower" x264 presets (medium, slow, slower, etc.) - they work slower to produce better quality within the other settings you specified (e.g., bitrate, framerate, quantization). If I recall correctly, the "Low Latency" presets are generally meant for streaming the output across a local network for further processing. The "Low Latency" presets may actually reduce the FPS throughput of NVENC in some cases, so it's not recommended for most use cases (like streaming/recording games on a single PC setup).

High444p is a color/chroma setting. Using that may lead to less encoder throughput (lower encoder FPS), but it may be negligible. I don't know enough about chroma subsampling to properly explain the setting or why you should or should not use it.

If you're curious about the performance numbers of the NVENC, the metrics for their 4.0 SDK are in this PDF in Section 4 on page 11. That's a bit out of date, but should provide some context about the performance of the presets and profiles relative to each other. They also go over the numbers a bit for newer SDK versions and architectures on this web page.


I'm sorry you've had a difficult time finding this information. Documentation for various things is already on the roadmap, and is currently being worked on. Tooltips are also currently being worked on. Similarly, there have been discussions about how to improve UI and user experience in OBS. Unfortunately, there are only so many people with the knowledge and ability to contribute, and there are even less people who can approve and merge those contributions into OBS, its website, its blog, its guides, or its wiki. If you're looking to help contribute, feel free to stop by on IRC and chat with other contributors to see how you can help.
 
Last edited:

Fenrir

Forum Admin
Hi, as someone who has spent the better part of the last year writing front-end documentation for OBS, I'm not sure I quite understand some of your complaints here.

Video encoding in general is VERY heavily documented. We use x264 out of the box, and all of those options are explained and discussed to death across the internet. You can check my blog post I did here for an introduction to x264 with streaming. I also provide links to where you can go to learn more about video encoding and the deep dive into what every single setting means.

NVENC, QSV, and VCE are a bit trickier as they are not very well documented, being proprietary closed-source hardware-based encoders. There's information out there, as RytoEX provided, but it can be a bit difficult to find.

The recording presets are designed that your specific use cases don't matter. The biggest limitation with video encoding when it comes to actual quality is the bitrate being used. When you're recording locally, you can use features like CRF or CQP to target a specific quality metric, and use as much bitrate as you need to achieve that. With streaming, it's far less simple (again, check my blog post for the basics) and you need to test what works for you, and what you're happy with.

Lack of multi-track audio in simple mode is something that has been discussed, but it's not a simple thing to fix because it's really easy to shoot yourself in the foot with that. You have to look at this from our point of view. If we start moving options from advanced to simple, what's the point of having advanced in the first place? Simple mode is designed for new and inexperienced users to streamline and only offer the options that they would need to get going. If you think you need multi-track audio, chances are you're going to be doing a bit more research to understand some of these things outside of OBS itself, and start moving into the advanced configuration options. If you're not willing to take the time to research, then chances are you probably don't need the advanced options in the first place. Almost every single day I talk to someone who can't record with the settings they're using in advanced output mode because they blindly follow some YouTube guide that just said "set these things!" and then never bothered to explain WHY.

We have documentation out there. I fully agree with you it's not the easiest to find, and I have quite a few other projects in the works to get this information out there, but it's not easy. OBS is a community driven project. We're all working on this in our spare time, and we don't have the resources to document every single option and feature. In-app tooltips is something I want, but it will be some time until that can happen, if at all.

Please understand that the amount of data and information available and required for advanced video encoding setups is widely available, and it just doesn't make much sense for us to duplicate that and put it in the program.

Lastly, regarding your comment about experimenting... YES. Yes you should have to experiment! That's how you learn! That's one of the biggest things that I try to push to all of our users. There is no such thing as best settings. There is no magic to video encoding, but there is finesse. People spend a LOT of time learning how this all works, and it's not simple. It's not easy. Nothing we do will change that. Test, test, test, test, and test again. That's the best advice we can give.
 

layarion

Member
I'm not really sure why tooltips is hard, but a lot of these guides don't cover the different color options either. even if the help tab on the software just linked to other help pages for the sake of centralizing; it would bemuch easier to find the information.

1)
I've just found a few semi down to earth guides explaining 444 422 411 and 420, as well as 8 bit, 10 bit, 12 bit, and 32 and what that means for over bright or too dark colors, and the same person covered what RGB, and what YUV, and then y cb cr vs y pb pr is but none of that helped me understand this:

i can pick a color format of RGB, but there is a YUV color space option. Yet i don't see YUV as a format option. is it somehow both? i don't understand. a tooltip on what 601 was and 709 even if it was simple might be better than absolute nothing, or a link in the help tab that lead to a centralized web that then lead to what this was would be better than nothing.

2)
about the "why have an advanced tab" i get that wanting to keep your mic separate from your game audio is pointless if most of your users are streamers - but how about a middle ground? let me go to the advanced tab, and choose one of the simple profiles - doing so sets the advanced options to whatever settings the simple profiles are. This way, we both win.

See switching to advanced doesn't use a preset, so i have to learn each setting. If i could just have the advanced tab initially represent what the simple presets look like, then i only need to change the ones i need to, and leave the rest to obs's judgement. Now that i can see what it's doing; it's possible to do that.

Then this helps your side of the argument, because instead of bringing advanced features over to the simple area, it's actually just being left completely alone and the way you want it.
 

Fenrir

Forum Admin
I'm not really sure why tooltips is hard, but a lot of these guides don't cover the different color options either. even if the help tab on the software just linked to other help pages for the sake of centralizing; it would bemuch easier to find the information.

You still seem a bit confused. Tooltips are not hard from an actual implementation and coding standpoint, but who is going to sit down and write out the descriptions of every single option? Feel free to contribute to the list I've started here: https://github.com/Fenrirthviti/obs-studio/wiki/OBS-help-text

1)
I've just found a few semi down to earth guides explaining 444 422 411 and 420, as well as 8 bit, 10 bit, 12 bit, and 32 and what that means for over bright or too dark colors, and the same person covered what RGB, and what YUV, and then y cb cr vs y pb pr is but none of that helped me understand this:

i can pick a color format of RGB, but there is a YUV color space option. Yet i don't see YUV as a format option. is it somehow both? i don't understand. a tooltip on what 601 was and 709 even if it was simple might be better than absolute nothing, or a link in the help tab that lead to a centralized web that then lead to what this was would be better than nothing.

None of this is specific to OBS. These are widely used standards for video. Color spacing/formats gets really complicated, REALLY fast, and is not something we can cover in a simple guide or tooltip. Hell, even the same color space doesn't react the same given different input/output in some cases. There is a reason there are entire research papers devoted to this subject, and why these settings are put in the Advanced tab, where users shouldn't be messing unless they understand exactly what it is they are doing and know why they need to do it. Sounds like you found some good guides on it, keep searching. Anything we provide would just be copy/pasted from somewhere else anyway. No point in spending effort to reinvent the wheel here.

2)
about the "why have an advanced tab" i get that wanting to keep your mic separate from your game audio is pointless if most of your users are streamers - but how about a middle ground? let me go to the advanced tab, and choose one of the simple profiles - doing so sets the advanced options to whatever settings the simple profiles are. This way, we both win.

See switching to advanced doesn't use a preset, so i have to learn each setting. If i could just have the advanced tab initially represent what the simple presets look like, then i only need to change the ones i need to, and leave the rest to obs's judgement. Now that i can see what it's doing; it's possible to do that.

Then this helps your side of the argument, because instead of bringing advanced features over to the simple area, it's actually just being left completely alone and the way you want it.

This has been discussed, and is something I want to see improved. However, your "middle ground" encourages users to go into advanced mode, and then what's the point of having simple in the first place? The entire point is to make things as simple and streamlined as possible for new and inexperienced users. Making advanced more accessible is contrary to part of the goals here. Advanced mode is SUPPOSED to be a little intimidating. It's supposed to be for users who have taken the time and research and know exactly what they want out of the encoders. Again, I fully agree the current situation could use some work, but it's not just a simple fix. These things take time to plan out.

My only other comment here is that you seem to be operating under the assumption that OBS is using custom or unique methods for encoding. We don't. We use x264, Nvidia's NVENC, AMD's VCE/AMF, and Intel's QuickSync for encoders. It is not really our responsibility to document those, as they are heavily documented elsewhere. Would you rather we spent the time copy/pasting guides from the x264 forums instead of working on feature enhancements and bug fixes? It just doesn't make sense.
 
Top