STEAM 그룹
Steam Remote Play homestream
STEAM 그룹
Steam Remote Play homestream
1,648
게임 중
27,224
온라인
설립
2013년 11월 7일
모든 토론 > General Discussion > 제목 정보
loler_SK 2015년 11월 6일 오전 1시 30분
How to quickly enable/disable NVFBC encoder for Nvidia cards on Windows
Hi there,
I use the below batch scripts (*.bat) files to quickly enable/disable NVFBC hardware encoder on HOST PC for compatible Nvidia cards. When NVFBC is disabled, Steam uses NVIFR. Try it if you want, works for me on Windows 7 64bit. So I no more need to uninstall/reinstall GeForce Experience to do this. Don't forget to restart Steam on HOST PC once the encoder is disabled/enabled. I expect that you need to have GeForce Experience installed in order to enable NVFBC.

link:
http://www83.zippyshare.com/v/khwk87ip/file.html

loler_SK 님이 마지막으로 수정; 2015년 11월 6일 오전 1시 34분
< >
전체 댓글 94개 중 1~15개 표시 중
salxicha 2015년 11월 6일 오전 3시 29분 
Do you mind describing why should we do it? Any technical advantages compared to H264?

When I use hardware encoding on my host PC games using too much physics (Crysis series) stutters like hell :(
loler_SK 2015년 11월 6일 오전 4시 26분 
I have NVFBC disabled to use NVIFR encoder for most games as I have better performance with it on my GTX770. Hovewer GTA5 and some other games won't launch with NVIFR, they use software encoder or cannot launch at all (black screen), so then I enable NVFBC to play these games, because NVFBC works for every game and have better performance than software encoding. When you install GeForce experience and enable "streaming" in its setting, Steam always use NVFBC as hardware encoder, which is slower than NVIFR and has worse latency on GTX770. Maybe newer architecture (GTX 900 series) works better with NVFBC, but that's not my case. So I'm enabling it only when needed due to compatibility.
salxicha 2015년 11월 6일 오전 4시 41분 
Interesting! As I'm just started with in-home streaming I had no idea that I actually should enable streaming inside GeForce experience to change the codec.

I was receiving poor results while hardware encoding at my host GTX980 and using software encoding instead with overall better quality.

Thanks for the explanation and the files
roger 2015년 11월 6일 오전 6시 50분 
Interesting, witcher 3 on gtx770, seems NVFBC performance is much better than NVIFR
loler_SK 2015년 11월 6일 오전 6시 54분 
I play witcher 3 over streaming as well, and NVIFR works better for me, the game runs more smoothly, really interesting...
bristol_flyguy1980 2015년 11월 6일 오전 7시 11분 
i can confirm the new nvidia 358.87 drivers give shadowplay over sli, if you turn shadowplay on then off to use NVFBC it appears to allow in home streaming to use sli.
Greg 2015년 11월 6일 오후 7시 19분 
I really appreciate you making this script. I'll have to try it out tonight. My previous "solution" was to just uninstall the driver every time I wanted to go from FBC to IFR as toggling shadowplay off never turned off NvFBC.

To be honest I don't think NvIFR is "disabled" by any means. I think valve has it set higher than NvIFR on the encoder priority chain which in my (and many others) opinion is completely wrong. IFR should always take precedence over FBC.

Also I've managed to get GTAV to work using NvIFR. The trick is start the launcher, "launch" the game, and during the 3-4 second period before the game starts quickly start the stream. Unfortunately in my case I must have the stream started before the game actually launches otherwise it will not detect my controllers. It sounds like a pain in the ass, because it is. Though after doing it a few times it becomes pretty trivial.


For those wondering the difference.

NVFBC = Full framebuffer capture

NVIFR = Single game capture. (From what I can tell it does this is much more of a "push" than a "pull" if that makes sense)

NVIFR should always be faster than NVFBC

Q6) When should NvFBC and NvIFR be used?
A6) NvIFR is the preferred solution to capture the video output of one specific
application. NvFBC is better for remote desktop applications. For a more detailed
explanation of the differences, please refer to the “Amazon G2 Instance Getting Started
Guide” included with the SDK.

https://developer.nvidia.com/sites/default/files/akamai/gamedev/docs/GRID-SDK-FAQ.pdf
Greg 님이 마지막으로 수정; 2015년 11월 6일 오후 7시 26분
roger 2015년 11월 6일 오후 7시 57분 
I hope steam can let user choose which hw encoder they want to use, and for my case - i5/gtx770/Windows 10, run withcer 3 with 1680x1050, the host machine can get nearly 50~60fps on normal situation, but with NVIFR, the fps drop down to 40~50 on client, and NVFBC still get 50~60, so its hard to tell which is better...

PS:
I use a trick to make steam pass the 30m network limit, the encode bit rate can reach 50m~70m
bristol_flyguy1980 2015년 11월 7일 오전 11시 26분 
Nevermind my previous post, definately feels like hardware encoding is broken and performance across games is inconsistent.

To top it all off I can consistently reproduce an issue with Batman Arkham Knight where using NVFBC the game will freeze on client but sound continues. On the host, the game is still running fine ! but in the background the steam bootstrapper has stopped responding :(
Queuecumber 2015년 11월 7일 오후 12시 00분 
Can you explain how this works or what the manual steps would be? I'm kind of opposed to running an encrypted executable delivered via script from a random internet download
Greg 2015년 11월 7일 오후 12시 24분 
From what I can tell it's the standard "NvFBCEnable" executable that is provided with the GRID SDK. He embedded this into the batch file as I don't think it's installed with the GeForce experience software (it's probably embedded). I have not manually decrypted the file and run a virus scan on it although you could do this easily if you wish. Just remove this line "%temp%\NvFBCEnable.exe -enable/disable/checkstatus" from the batch file and then run it. Then scan the NvFBCEnable.exe in the temp directory.

https://developer.nvidia.com/sites/default/files/akamai/gamedev/GRID/grid22/GRID-SDK-FAQ.pdf

Q18) How do I enable NvFBC?
A18) Here are the NvFBC settings
a) Windows: NvFBC needs to be enabled after a clean installation.
{Installation Directory} \bin> NvFBCEnable.exe -enable
Use the NvFBCH264 SDK sample to capture the desktop to a H.264 file
Greg 님이 마지막으로 수정; 2015년 11월 7일 오후 12시 27분
loler_SK 2015년 11월 7일 오후 12시 50분 
Yes exactly, the script uses NvFBCEnable.exe from Nvidia GRID SDK.
Greg 2015년 11월 7일 오후 1시 00분 
Ironically if you just included the NvFBCEnable.exe with some shortcuts then people would probably freak out about "some random executable".
Greg 님이 마지막으로 수정; 2015년 11월 7일 오후 1시 01분
Seleuco 2015년 11월 7일 오후 1시 31분 
NVIFR -> suited for windowed, borderless windowed games.
NVFBC -> suited for full screen games.

So you should configure full screen, not borderless window...

NVFBC is better for games at full screen.
Greg 2015년 11월 7일 오후 1시 31분 
You're completely wrong (you have it backwards). Except for the running full screen part.

I'll again quote NVIDIA's own GRID FAQ

Q6) When should NvFBC and NvIFR be used?
A6) NvIFR is the preferred solution to capture the video output of one specific
application. NvFBC is better for remote desktop applications.

A3) The GRID SDK consists of two component software APIs: NvFBC and NvIFR.
a) NvFBC captures (and optionally H.264 encodes) the entire visible desktop
b) NvIFR captures (and optionally H.264 encodes) from a specific render target

https://developer.nvidia.com/sites/default/files/akamai/gamedev/docs/GRID-SDK-FAQ.pdf
Greg 님이 마지막으로 수정; 2015년 11월 7일 오후 1시 36분
< >
전체 댓글 94개 중 1~15개 표시 중
페이지당 표시 개수: 1530 50

모든 토론 > General Discussion > 제목 정보
게시된 날짜: 2015년 11월 6일 오전 1시 30분
게시글: 94