NVENC Performance Improvements (Release Candidate)

Status
Not open for further replies.

DIRTY CES

Member
Osiris,

I've attached the log. Now I have a i7 7700k and an 2080ti. My Xbox is connected to my elgato hd60 pro Internal card.

When I use the nvenc new my stream gets blurrier than when I was using x264 on my i7 7700k on veryfast same bit rate 8,000.
I'm also recording at the same time using nvenc new same settings but with bitrate at 40,000. My upload speed to around 950 mbps.

Hope you can find an isssue. This stream was on Black Ops 4. Every time I ran or moved it got blurry and also can't even make out my face. It got like that on the i7 7700k but not as bad
 

Attachments

  • 2019-01-24 20-15-38.txt
    19.3 KB · Views: 66

MrDoomsday

New Member
I came here to check up on whether it was worth downloading this, but for reference I haven't actually tried the beta yet. However I saw this and wanted to chime in.

I currently stream at a different resolution to what I record, and I use NVENC for both recording and streaming. It was one of the main reasons I went to NVENC so I could have the higher quality video to use for editing for YouTube, while keeping things looking nicer at lower bitrates on Twitch streams. Not having that ability might be a bit of a pain.

Just wanted to give some more info on this specifically. I'm looking forward to seeing some performance improvements with the new version of this, but it's no longer a slam dunk for me to definitely try it straight away after seeing this. Cheers.
Just use shadowplah for local recordings and obs for streaming
Thats how i do it
 

SneakyAzShiite

New Member
For those of you who want to be able to rescale the output for streaming while recording with a higher resolution: Are you all using NVENC for both recording and streaming, or are you using different encoders for each?

I have a single PC setup and previously used CPU for streaming (720p) and NVENC (1080p) for recording. I upgraded to an RTX 2060 and am trying to use new NVENC to stream. The largest benefit is that I play a lot of Rainbow Six Siege which is a big resource hog but the new encoder makes it so much easier to stream. The problem is I don't have the overhead to stream and record with it + I am not able to scale the recording to be 1080p
 

vwoo

New Member
I've been excited to try out the new GPU optimized OBS build, but was disappointed to find myself still getting a ton of frame drops (10%!).

Here's a log of me playing a few minutes of PUBG training mode: https://obsproject.com/logs/OeCN3XoZO-GE6SKE. I have an i9 9900k and an RTX 2080. I'm using the new NVENC recorder on pretty straightforward settings (CQ 22, max performance, 1440p), but still have a ton of problems with recording. Is this a known/expected issue?
 

jellysandwich

New Member
Hey guys, I made a build if anyone wants to test it out. It's rough but seems to work.

I added a few of the advanced options ... I can add other options as well but these stood out the most in the nvidia documentation

-added bframes as a reference (enabled automatically if bframes > 0)
-split out spatial aq and temporal aq
-added spatial aq strength
-added lookahead depth

Zip file of build (26mb - win64 only): https://drive.google.com/open?id=1mb-WLc2rTspKaZJ7Ma_s0Ek0FWwM5Y70
Github changes: https://github.com/obsproject/obs-studio/compare/jim-nvenc...amnah:jim-nvenc?expand=1
Nvidia sdk documentation: https://drive.google.com/open?id=1aRQJZTVCuxDa91Fu80e_16pt_JuUILEO
 

Attachments

  • obs-Release.png
    obs-Release.png
    60.6 KB · Views: 189

LiaNdrY

Member
Hey guys, I made a build if anyone wants to test it out. It's rough but seems to work...
Fine! But I would like to see the possibility of calibration and the availability of the following options:
- Refs;
- Presets slow, medium, fast, lossless, losslesshp;
- Rate Control: RC_MODE_VBR_HQ and others;
- Surfaces;
 
Last edited:

Osiris

Active Member
Slow, medium and fast are not defined presets in the NVENC API, they aren't listed in the nvEncodeApi.h header file.
@jellysandwich be sure to make a pull request when the jim-nvenc branch is merged into master
 

LiaNdrY

Member
Slow, medium and fast are not defined presets in the NVENC API, they aren't listed in the nvEncodeApi.h header file.
@jellysandwich be sure to make a pull request when the jim-nvenc branch is merged into master
{ NV_ENC_PRESET_HQ_GUID, NVENC_TWO_PASSES }, /* slow */
{ NV_ENC_PRESET_HQ_GUID, NVENC_ONE_PASS }, /* medium */
{ NV_ENC_PRESET_HP_GUID, NVENC_ONE_PASS }, /* fast */
 

Osiris

Active Member
Those are not defined presets in the NVENC API, those lines do not appear in the header file.
Either way, it's up to Jim if he wants to have all those advanced settings for NVENC in OBS. My guess would be definitely not visible by default, but behind some kind of checkbox that would make more settings appear when checked.
 

LiaNdrY

Member
Those are not defined presets in the NVENC API, those lines do not appear in the header file.
Either way, it's up to Jim if he wants to have all kinds of advanced settings for NVENC in OBS. My guess would be definitely not visible by default, but behind some kind of checkbox that would make more settings appear when checked.
Therefore, they need to be added there.
 

Osiris

Active Member
That's not how it works, there is no slow, medium or fast preset defined in the API, changing the header file won't change that.
These are the defined ones:
Code:
// =========================================================================================
// *   Preset GUIDS supported by the NvEncodeAPI interface.
// =========================================================================================
// {B2DFB705-4EBD-4C49-9B5F-24A777D3E587}
static const GUID NV_ENC_PRESET_DEFAULT_GUID =
{ 0xb2dfb705, 0x4ebd, 0x4c49, { 0x9b, 0x5f, 0x24, 0xa7, 0x77, 0xd3, 0xe5, 0x87 } };

// {60E4C59F-E846-4484-A56D-CD45BE9FDDF6}
static const GUID NV_ENC_PRESET_HP_GUID =
{ 0x60e4c59f, 0xe846, 0x4484, { 0xa5, 0x6d, 0xcd, 0x45, 0xbe, 0x9f, 0xdd, 0xf6 } };

// {34DBA71D-A77B-4B8F-9C3E-B6D5DA24C012}
static const GUID NV_ENC_PRESET_HQ_GUID =
{ 0x34dba71d, 0xa77b, 0x4b8f, { 0x9c, 0x3e, 0xb6, 0xd5, 0xda, 0x24, 0xc0, 0x12 } };

// {82E3E450-BDBB-4e40-989C-82A90DF9EF32}
static const GUID NV_ENC_PRESET_BD_GUID  =
{ 0x82e3e450, 0xbdbb, 0x4e40, { 0x98, 0x9c, 0x82, 0xa9, 0xd, 0xf9, 0xef, 0x32 } };

// {49DF21C5-6DFA-4feb-9787-6ACC9EFFB726}
static const GUID NV_ENC_PRESET_LOW_LATENCY_DEFAULT_GUID  =
{ 0x49df21c5, 0x6dfa, 0x4feb, { 0x97, 0x87, 0x6a, 0xcc, 0x9e, 0xff, 0xb7, 0x26 } };

// {C5F733B9-EA97-4cf9-BEC2-BF78A74FD105}
static const GUID NV_ENC_PRESET_LOW_LATENCY_HQ_GUID  =
{ 0xc5f733b9, 0xea97, 0x4cf9, { 0xbe, 0xc2, 0xbf, 0x78, 0xa7, 0x4f, 0xd1, 0x5 } };

// {67082A44-4BAD-48FA-98EA-93056D150A58}
static const GUID NV_ENC_PRESET_LOW_LATENCY_HP_GUID =
{ 0x67082a44, 0x4bad, 0x48fa, { 0x98, 0xea, 0x93, 0x5, 0x6d, 0x15, 0xa, 0x58 } };

// {D5BFB716-C604-44e7-9BB8-DEA5510FC3AC}
static const GUID NV_ENC_PRESET_LOSSLESS_DEFAULT_GUID =
{ 0xd5bfb716, 0xc604, 0x44e7, { 0x9b, 0xb8, 0xde, 0xa5, 0x51, 0xf, 0xc3, 0xac } };

// {149998E7-2364-411d-82EF-179888093409}
static const GUID NV_ENC_PRESET_LOSSLESS_HP_GUID =
{ 0x149998e7, 0x2364, 0x411d, { 0x82, 0xef, 0x17, 0x98, 0x88, 0x9, 0x34, 0x9 } };
 

Osiris

Active Member
It doesn't have a corresponding preset, it is the NVENC HQ preset and 2-pass enabled, but that is something done outside of the NVENC API.
Quality = NVENC HQ preset and 2-pass disabled
Max Performance = NVENC HP preset and 2-pass disabled
So going off of what you pasted, there is no need for a slow, medium or fast option, since those combination of settings is already there.
 

LiaNdrY

Member
It doesn't have a corresponding preset, it is the NVENC HQ preset and 2-pass enabled, but that is something done outside of the NVENC API.
Quality = NVENC HQ preset and 2-pass disabled
Max Performance = NVENC HP preset and 2-pass disabled
So going off of what you pasted, there is no need for a slow, medium or fast option, since those combination of settings is already there.
It turns out that Max Quality is the same as the Slow preset.
 

hundlos

New Member
is there a chance to fix the issue that on my pc the tesla p4 + quaddro p2000 the tesla is not used anymore with the new version ?

i would like to set the performance gain of the newer version on the tesla p4

thanks for the help
 

Osiris

Active Member
The new NVENC should use w/e GPU you have set it to in Settings -> Output, but switching it to a GPU that OBS is not running on defeats the purpose of using the new NVENC.
 

LiaNdrY

Member
-added bframes as a reference (enabled automatically if bframes > 0)
-split out spatial aq and temporal aq
-added spatial aq strength
-added lookahead depth
Here is the source of nvenc, which was once found on this forum.
Available only in second generation Maxwell GPUs and above.
 

Attachments

  • obs-ffmpeg-nvenc.zip
    4.7 KB · Views: 77
Status
Not open for further replies.
Top