If Steam can use nvFBC on GeForce why can I not develop my own program that uses nvFBC on GeForce?
Why does nobody want to answer my question?
NVFBC is a licensed product and not supported on GeForce for all users. Please see https://developer.nvidia.com/capture-sdk for list of supported GPUs.
Please read my question again.
nvFBC works on GeForce with in home streaming in Steam so why can I not use it in my own program with GeForce?!
How can I use nvFBC on GeForce products in my program?
As Nvidia states in previous posts it is not allowed to use nvFBC/nvIFR API and nvENC API is also crippled to 2 parallel streams per system with customer grade GeForce cards (and lowend <*2000 Quadros cards). And yes, Nvidia probably use this forbidden API with it’s own products (Nvidia GameStream). My recommendations:
- You can try to use/modify opensource frontend "Moonlight" for GameStream protocol to get video stream.
- You can try to get some information about Microsoft's generic solution (search for "Windows 10 Game DVR").
- You can try to hack your card to "mimics" Quadro card (search for "Hacking NVidia Cards into their Professional Counterparts").
- You can try to sue Nvidia @EU for unfair practices.
- ... and/or you can express publicly your love to Nvidia (search for "Torwalds Nvidia").
- Nvidia HAVE (not probably) used this in GameStream
- Steam have been granted permission to use it also for In House streaming
- Microsoft Windows 10 Game DVR is not an API but a product, you’re looking for DXGI Desktop Duplication.
- NVidia are being anti-competitive as only allowing GameStream and Steam to use this API gives them an unfair advantage over any competing capture software (ie, Fraps).
I’ve figured out how they enable access to NVFBC on consumer cards and I am able to use the it as I wish. You just have to put in the leg work to figuring out how Steam did it (they got a special key from NVIDIA)
Yup, I am fully aware of this, but by doing so you are breaching the NVIDIA Capture API License, which is the crux of the issue. I am the author of Looking Glass (https://looking-glass.hostfission.com) where we would like to use NvFBC on consumer cards and have been trying to find a way to legally allow this for 2 years now.
I believe I may have come into a way to do this legally. Please reach out to me on your VFIO discord, I am user radicalplants
If its legal why not post it here?
I need to validate the legality of my claim. I will have to run my method by NVIDIA to see if they approve or it’s release.
- search the Internet is legal ("Looking Glass patch to enable NvFBC on GeForce") (should be printed on t-shirt like https://www.cafepress.com/hdcp)
- "NVIDIA Capture SDK" is deprecated and unusable product for Windows platform
- Win7 is deprecated (from 2020)
- programmers should use only DXGI desktop duplication API in Win10 (from 9/2019) (see https://developer.nvidia.com/capture-sdk, https://developer.nvidia.com/designworks/capture_sdk/docs/NVFBC_Win10_Deprecation_Tech_Bulletin.pdf, https://github.com/NVIDIA/video-sdk-samples/tree/master/nvEncDXGIOutputDuplicationSample)
- NvFBC does not work as expected in many cases (defined as "standard" behavior and any problems are ignored by NVIDIA) (see https://gridforums.nvidia.com/default/topic/8803/, https://gridforums.nvidia.com/default/topic/1149/)
How do I use the magic key with NvFBC ToSys, pPrivateData only exists in NvFBCCreateParams which is only used in the NvFBC CUDA sample of the Capture SDK?
Check the SDK documentation and/or header files for low level C function (NvFBC.h) and/or look to C++ opensource code in examples - nvFBCCreateHandle()/NVFBC_CREATE_HANDLE_PARAMS (linux) or NvFBC_CreateEx()/NvFBCCreateParams (windows) (check code https://codesearch.isocpp.org/actcd19/main/l/looking-glass/looking-glass_0+a12-2/host/Capture/NvFBC.cpp). (for IANAL discussion see also https://github.com/gnif/LookingGlass/issues/188).
I can provide my code for retrieving the privateData UUID from a program that is not under NVIDIA’s EULA however they may remove my forum post. Please standby I will post a GitHub link Friday
Here is my code https://github.com/trevor403/get-priv-data