Question / Help Best settings for Streaming + Recording for post editing (9900k + 2080)

AndreDeBonk

New Member
Greetings everyone!

I have a laptop with a delidded 9900k and 2080.
I want to use multiple Audio Tracks feature and have a good quality of my local recordings with streaming at the same time.

So I would like to see recommendations about what is the best way for me to do this.

Which encoder, rate control, bitrate/etc should be applied?
Should I use different encoders for local recordings and streaming?
Are there any other settings which you would recommend to change from the default obs state?

I used the autoconfiguration wizard and got these settings:
https://i.imgur.com/UGNHUlD.png

So basically using NVENC and 6000 bitrate for 1920x1080 60 fps.

But I use the same settings on the laptop with RTX 2060 and i5 CPU, so it seems to me that it is possible to make something better with 9900k and 2080.

Thank you in advance.
 

Tarumes

Member
its the recommended setting for record and streaming
for recording you can set to lossless if you want
but you should only switch to custom settings if you have issues with default simple mode
 

koala

Active Member
Actually, your settings are the optimized settings.

If you start streaming, OBS uses the settings from the "streaming" part of your screenshot, i. e. it's streaming with 6000 bitrate, which is internally the CBR rate control. With a RTX 2080, this is producing very good stream quality - only to increase if you are able to increase the bitrate, which is dependent on your internet connection and on your viewers.

If you start recording, on its own or at the same time as streaming, OBS creates a second encoder and encodes the recording with the settings from the "recording" part of your screenshot. These say "high quality, medium file size", which is internally the CQP rate control. This is a variable bitrate constant quality rate control that will produce videos with as much bitrate as necessary to ensure the requested quality. If the current quality isn't good enough for you, switch to "Indistinguishable Quality, large file size". This will not increase the system load, only the file size of your recording (and the quality, of course).
 
Last edited:

koala

Active Member
I forgot you want to record multiple audio tracks. This isn't possible with simple output mode. Switch to advanced output mode.

Copy your current streaming settings into the newly appeared streaming tab, leave the additional stuff at default. Set "nvenc (new)" as encoder.

In the recording tab, also set "nvenc (new)" as encoder. Switch to CQP rate control and use 18-23 as CQ level (lower values mean higher quality). Choose profile high. Leave everything else at default.

You will see that you got the feature to create multple audio tracks. Activate the tracks you want to create. Track 1 is shared between streaming and recording, the additional tracks are in the recording only. To configure which audio sources get into which track, click Edit->Advanced Audio properties.

The above is true if you want to stream and record with the same resolution. Things get more difficult if you want to stream with 720p (for example) but record at higher resolution at 1920x1080.
 
Last edited:

AndreDeBonk

New Member
I forgot you want to record multiple audio tracks. This isn't possible with simple output mode. Switch to advanced output mode.

Copy your current streaming settings into the newly appeared streaming tab, leave the additional stuff at default. Set "nvenc (new)" as encoder.

In the recording tab, also set "nvenc (new)" as encoder. Switch to CQP rate control and use 18-23 as CQ level (lower values mean higher quality). Choose profile high. Leave everything else at default.

You will see that you got the feature to create multple audio tracks. Activate the tracks you want to create. Track 1 is shared between streaming and recording, the additional tracks are in the recording only. To configure which audio sources get into which track, click Edit->Advanced Audio properties.

The above is true if you want to stream and record with the same resolution. Things get more difficult if you want to stream with 720p (for example) but record at higher resolution at 1920x1080.
Thank you for your two comments, they are very useful!
As I understood, I can stream with CBR and record with a higher quality using CQP, all done on NVENC?

In the Recording section, it is possible to use Encoder: (Use stream encoder)
I thought that in this way the OBS takes the same resources for streaming and streaming + recording.

Is there a difference in the CPU load when I use Encoder: (Use stream encoder) vs using CQP 18-23?
It is also possible to use there a preset Max Quality or Quality (by default). Which impact does it have on the quality and the CPU load?
 

koala

Active Member
If you "use stream encoder", only one encoder is used and simply the stream data is written to disk. If you use own settings for recording, an additional encoder is used for recording. This uses double encoding performance requirement in theory, but since nvenc is implemented as hardware circuit, there is no real additional load for GPU or CPU. It's somewhat free. With the consumer Nvidia RTX cards, 2 parallel encoding sessions are possible. There is no difference in cpu load for CQP 18..23.
If you change quality to max quality, a small bit of GPU resources is used. Usually negligible with a powerful card such as the 2080. The same with look-ahead (enabled by default) and psycho visual tuning. If you have not already maxed your GPU usage, these are useful modifiers to enhance the recording quality a bit.
 

AndreDeBonk

New Member
If you "use stream encoder", only one encoder is used and simply the stream data is written to disk. If you use own settings for recording, an additional encoder is used for recording. This uses double encoding performance requirement in theory, but since nvenc is implemented as hardware circuit, there is no real additional load for GPU or CPU. It's somewhat free. With the consumer Nvidia RTX cards, 2 parallel encoding sessions are possible. There is no difference in cpu load for CQP 18..23.
If you change quality to max quality, a small bit of GPU resources is used. Usually negligible with a powerful card such as the 2080. The same with look-ahead (enabled by default) and psycho visual tuning. If you have not already maxed your GPU usage, these are useful modifiers to enhance the recording quality a bit.
Thank you!

I have ended up with these settings:
https://i.imgur.com/OPZNh0l.png

Did I pick the right output format - MKV?
I also found recommendations of settings Keyframe Interval to 2.

Please check if everything is good there :)
 

koala

Active Member
The settings are ok. In the streaming tab, enable "enforce streaming service encoder settings".
Usually, keyframe interval should stay at 0 (auto). Only if you have a specific requirement for an explicit setting, set it to other than 0. Just having read in some guide is not a good cause for changing a default. You also must have a specific demand for setting something to other than the default.

Keyframe interval 2 is required by most streaming services, but with recording this is of no relevance. By enforcing the streaming service encoder settings the correct keyframe interval is set automatically to the value the streaming service requires, so you don't have to change even this from the default 0.
 

AndreDeBonk

New Member
The settings are ok. In the streaming tab, enable "enforce streaming service encoder settings".
Usually, keyframe interval should stay at 0 (auto). Only if you have a specific requirement for an explicit setting, set it to other than 0. Just having read in some guide is not a good cause for changing a default. You also must have a specific demand for setting something to other than the default.

Keyframe interval 2 is required by most streaming services, but with recording this is of no relevance. By enforcing the streaming service encoder settings the correct keyframe interval is set automatically to the value the streaming service requires, so you don't have to change even this from the default 0.
Thank you, changed that.

I just googled keyframe interval, and in all the articles which I checked suggested to make it 2.
But it seems to me you know what you are suggesting, so I changed it to 0.

Is it okay to use mkv format as the output providing that I want have multiple audio tracks?
Flv doesn't support it, and for mp4/mov it says that in case of unexpected end of the stream the file will be damaged.

Will I able to use all these settings on 2060 with i5-8300H as well?
 

koala

Active Member
Giving the encoder the freedom to choose its own keyframe interval is optimizing the output. For streaming, a forced interval of 2 is required, so that if packets get lost during transmission, you don't have to wait for more than 2 seconds to get the next full image. For recording, no transmission errors can happen, so the encoder should be allowed choose on its own when to put in keyframes. For example, key frames are often reasonable on scene changes when image changes completely. With a fixed key frame interval, key frames cannot be distributed as dynamically as required, so either quality suffers or disk space increases.

mkv is absolutely ok. It's the recommended recording format. If you have postprocessing software that requires mp4 as file format, you can remux mkv to mp4 afterwards. OBS is able to do this automatically after a recording with Settings->Advanced->Recording->Automatically remux to mp4 (record as mkv).

All this will work with a i5-8300H as well, same settings, since the major work is done on the GPU within the nvenc encoder, and the nvenc encoder on a 2060 is exactly the same as on a 2080. The CPU is much less powerful, though, so you if you try to record the same game as on the 9900k, you have to tune down the game quite some, if it is a very CPU demanding game. You don't need to change the OBS settings - you need to change the game settings (less graphics complexity, limit frame rate) instead, if you experience dropped frames within OBS.
Make sure you use the current Windows 10 version (1903).
 

AndreDeBonk

New Member
Giving the encoder the freedom to choose its own keyframe interval is optimizing the output. For streaming, a forced interval of 2 is required, so that if packets get lost during transmission, you don't have to wait for more than 2 seconds to get the next full image. For recording, no transmission errors can happen, so the encoder should be allowed choose on its own when to put in keyframes. For example, key frames are often reasonable on scene changes when image changes completely. With a fixed key frame interval, key frames cannot be distributed as dynamically as required, so either quality suffers or disk space increases.

mkv is absolutely ok. It's the recommended recording format. If you have postprocessing software that requires mp4 as file format, you can remux mkv to mp4 afterwards. OBS is able to do this automatically after a recording with Settings->Advanced->Recording->Automatically remux to mp4 (record as mkv).

All this will work with a i5-8300H as well, same settings, since the major work is done on the GPU within the nvenc encoder, and the nvenc encoder on a 2060 is exactly the same as on a 2080. The CPU is much less powerful, though, so you if you try to record the same game as on the 9900k, you have to tune down the game quite some, if it is a very CPU demanding game. You don't need to change the OBS settings - you need to change the game settings (less graphics complexity, limit frame rate) instead, if you experience dropped frames within OBS.
Make sure you use the current Windows 10 version (1903).
Just tried to stream with the settings which we made and got error :(

I have described it in this theme:
https://obsproject.com/forum/thread...nd-record-same-time-on-nvenc-2080-rtx.108962/

I was getting this error when I was trying to use the Simple Output mode.
Then I figured out that in Advanced mode, it works for streaming and recording (I used Encoder: (Use stream encoder)).

But when I tried use CQP NVENC method for local recording, I am again getting this error (so it launches the stream, but doesn't allow to make a local recording, or it allows just making a local record)

Here is the log:
https://obsproject.com/logs/5kFQcuy_wmV5ennQ

Any ideas why it happens like this?
Update:
Managed to fix it by disabling all Shadow Play features, as well as Game DVR (and Game Bar) from Windows 10.
 
Last edited:
Top