nvfbcwrp
Wrapper for NvFBC64.dll library which injects private keys into NvFBC_CreateEx calls in order to enable NvFBC on customer-grade hardware (like GeForce cards) for all NvFBC-targeted applications. It should work at least with applications built with Nvidia Capture SDK versions 5.0 to 7.1.
Usage
- Obtain
nvfbcwrp64.dllandnvfbcwrp32.dllfiles. You may build them yourself with MSVS 2019 or download latest release here: nvfbcwrp64.dll, nvfbcwrp32.dll. - Backup your
%WINDIR%\system32\NvFBC64.dlland%WINDIR%\SysWOW64\NvFBC.dllfiles. - Rename file
%WINDIR%\system32\NvFBC64.dllto%WINDIR%\system32\NvFBC64_.dll - Rename file
%WINDIR%\SysWOW64\NvFBC.dllto%WINDIR%\SysWOW64\NvFBC_.dll - Rename
nvfbcwrp64.dlland put it to%WINDIR%\system32\NvFBC64.dll(on the original place of renamedNvFBC64.dlllibrary). - Rename
nvfbcwrp32.dlland put it to%WINDIR%\SysWOW64\NvFBC.dll(on the original place of renamedNvFBC.dlllibrary). - Restart any applications using this library. That's it.
This procedure has to be repeated after any driver reinstall/update, so keep your copies of nvfbcwrp64.dll and nvfbcwrp32.dll files.
Advanced Usage
nvfbcwrp allows user to capture and replay privateData used by other NvFBC applications (like GeForce Experience, Shadow Play and so on). It may be useful if built-in privateData will render invalid for some reason. Wrapper recognizes two environment variables:
NVFBCWRP_DUMP_DIR- output directory for dumps ofprivateDatasent by applications.NVFBCWRP_PRIVDATA_FILE- name of file withprivateDatawhich should be used instead of default built-in vector. These files can be produced as output ofNVFBCWRP_DUMP_DIRoption. If file is not found or can't be loaded, default magic vector is used.
Hence, if default magic baked into nvfbcwrp doesn't work for you, you have to:
- Specify environment variable
NVFBCWRP_DUMP_DIRin your configuration with path to existing writable directory. Here is a guide about environment variables edit. It's sufficient to add "user" environment variable. - Run some NvFBC application with valid
privateDatakeys and initiate recording session. - Grab some output file and specify it's path in
NVFBCWRP_PRIVDATA_FILE. At this point you can unsetNVFBCWRP_DUMP_DIRto stopprivateDatacapture.
3rd-party software
For some software (e.g Steam) it is also needed to add registry value to use NvFBC, which you can do by running:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm" /v NVFBCEnable /d 1 /t REG_DWORD /f
(reboot / driver restart required to take effect)