obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
58.35k stars 7.79k forks source link

NVENC HEVC Fails to adjust recording configuration correctly when primary gpu is integrated graphics. #10364

Open Icedude907 opened 5 months ago

Icedude907 commented 5 months ago

Operating System Info

Windows 10

Other OS

No response

OBS Studio Version

30.1.0

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/MXv8OYdbRqrdf6Cl

OBS Studio Crash Log URL

No response

Expected Behavior

In Windows' settings I can choose between "Power Saving" and "High Performance" to force the OBS GUI to run on the integrated or dedicated cards. I prefer the gui on the iGPU as it makes DXGI Desktop capture work correctly.

I would expect either choice to have no effect on video capture.

Current Behavior

The Nvidia 1050 seemingly has some specific requirements about HEVC capture.

When the gui (obs64.exe) is running on the 1050 NVENC capture works fine by adjusting to these settings automatically if the user's configuration is incorrect. (Log: here)

However, when the gui is on the igpu with NVENC HEVC active, B-Frames are not adjusted to 0 if the user's settings are misconfigured. This throws an "Unsupported Device" error. (Log: here)

Steps to Reproduce

  1. Use the default Advanced Recording NVENC HEVC settings
  2. Launch OBS on the iGPU (Windows' "Graphics Performance Preference" for obs64.exe set to "Power Saving")
  3. Try record. It should fail.
  4. Relaunch OBS on the dGPU (windows graphics on "High Performance")
  5. Try record. It will succeed (by silently modifying the settings - see the logs) ... This might require specific hardware as seen below.

Anything else we should know?

My laptop's configuration is as follows:

RytoEX commented 5 months ago

I suspect this is ultimately the same weirdness as #9628 where the settings fallbacks do not happen in the correct order to catch the issue with b-frames when falling back to the FFmpeg NVENC implementation. This is probably not new to 30.1.

Icedude907 commented 5 months ago

This is probably not new to 30.1.

Can confirm. Present in 30.0.2