STEAM 群組
Steam Remote Play homestream
STEAM 群組
Steam Remote Play homestream
3,250
遊戲中
34,011
線上
創立
2013 年 11 月 7 日
所有討論 > General Discussion > 主題細節
Psyloid 2016 年 1 月 9 日 上午 2:26
NVIDIA hardware encoding NVFBC, NVENC, NVIFR, need some explanations
Hey,

I'm pretty new to streaming and i like to know some things.
I owned a PC with a E8400 and a HD4850 and a netbook connected to the tv with some AMD 8250 integrated crap. I started streaming and off-course that didn't work very well for most games.

So, I just upped the host with a quad core Xeon 3ghz and a GTX660, Things run smooth now on first glance, but i'd like to know more about hardware encoding on NVIDIA cards

The streaming info says : D3D9 NV12 + NVENC H264

how do i know if hardware encoding is enabled? and how do I know which method is used?
I enabled shadowplay in gforce experience, but the streaming info still says D3D9 NV12 + NVENC H264. I thought that somewhere in the streaming info it should say NVFBC or NVIFR ?

or is hardware encoding not working maybe and is the new CPU handling all the encoding.

I did find this is the streaming log :

[2016-01-09 09:05:34] CDesktopCaptureNV: Couldn't create NvFBC YUV interface: -5
[2016-01-09 09:05:34] CDesktopCaptureDWM: Reinitializing D3D for adapter 0x6f6e
[2016-01-09 09:05:34] Video adapter: NVIDIA GeForce GTX 660 , vendor ID: 0x10de, device ID: 0x11c0
[2016-01-09 09:05:34] CDesktopCaptureDWM: desktop duplication enabled
[2016-01-09 09:05:34] >>> Switching video stream from Desktop_MovieStream to GameOverlay_MovieStream_3692
[2016-01-09 09:05:35] >>> Capture method set to Game threaded D3D9 NV12 + NVENC H264

so it seems that steam is unable to initialise NVFBC ?!

can someone please explain it a bit more to me and also help me using NVFBC, i know it is the worst quality (from what i have read), but it has the least overhead on the CPU and GPU.

Not that i'm not pleased at the moment with what i'm getting (everything i tried was at least 30 fps and no hiccups), but i only own games that are at least two years old and now that i have new hardware i'd like to try some more taxing games and have the best of performance out of them :)

Thanks a lot !
最後修改者:Psyloid; 2016 年 1 月 9 日 上午 2:28
< >
目前顯示第 1-8 則留言,共 8
Tucu 2016 年 1 月 9 日 上午 2:45 
NVENC is the Nvidia hardware encoder. NVBFC and NVIFR are not encoders, but capture methods. Valve just misnamed the combinations (NVFBC should appear at "NVFBC + NVENC").
NVIFR was retired and you can select NVFBC in the BPM advanced host settings.
最後修改者:Tucu; 2016 年 1 月 9 日 上午 2:46
Psyloid 2016 年 1 月 9 日 上午 2:53 
well, I did all that. enabled shadowplay and set use NVFBC in BPM, but it doesn't seem to use it, as the log says Couldn't create NvFBC YUV interface

I wonder what is wrong ..
Psyloid 2016 年 1 月 9 日 上午 4:50 
been reading a lot (but not home so can't test). Does someone have definitive instructions on how to force steam to use NVFBC. It does seem to be the smoothest and most lagless option
Tucu 2016 年 1 月 9 日 上午 5:11 
NVFBC doesn't work with many games. The devs also said that the FPS counter with NVFBC always reports 60FPS even when the stream or the game are running at a lower rate; but for many people this has a placebo effect.
Psyloid 2016 年 1 月 9 日 上午 6:03 
okay, i'll just be happy then with what i've got :)
It works flawlessly anyway
oxygen 2016 年 1 月 27 日 上午 5:20 
引用自 Psyloid
been reading a lot (but not home so can't test). Does someone have definitive instructions on how to force steam to use NVFBC. It does seem to be the smoothest and most lagless option

If you have a fast multicore cpu, software encoding gives the least delay and jitter.
[masni] CYKA CLEANER 2016 年 1 月 27 日 上午 8:52 
引用自 oxygen
If you have a fast multicore cpu, software encoding gives the least delay and jitter.

No, nvfbc works best, by far.
Dragon 2016 年 6 月 12 日 上午 10:00 
Seeing as this is still the top Google hit for NVFBC...

I couldn't work out which encoding I should be running, software or hardware. Both seemed to work for me and the internet turned up noise with little real information.

Trying myself: I ran DOOM in 2560x1440 at the highest settings in a borderless window. DOOM reports 60 FPS during gameplay.

Server: i7 5930K CPU, 16GB Mem, Nvidia 980 TI Gfx
Client: i7 4770K CPU, 16GM Mem, AMD 7970 Gfx
Switch: <1ms latency, real throughput 980Mb/s

Both server and client have hyperthreading enabled and report 12 and 8 CPUs respectively. The in-home streaming client is set Beautiful with unlimited bandwidth.

Host settings: Enable hardware encoding on NVIDIA GPU + Prefer NVFBC capture method
Capture: 2560x1440 @ 59.75 (steady)
Encoder: Desktop NVFBC H264
Decoder: ... software ... 4 threads
Streaming Latency: 31ms to 36ms with odd spikes up to about 48ms for display
Incoming bitrate: a steady 98000 Kb/s (12 MB/s)

Host settings: Enable hardware encoding on NVIDIA GPU
Capture: 2560x1440 @ 59.75 (jitters from ~59.4 to ~59.8)
Encoder: ... OpenGL NV12 + NVENC H264
Decoder: ... software ... 4 threads
Streaming Latency: 33ms to 38ms with many spikes up to about 55ms for display
Incoming bitrate: a steady 98000 Kb/s (12.0 MB/s)

Host settings: Software encoding, 8 threads
Capture: 2560x1440 @ 59.75 (slight jitters around 59.75)
Encoder: ... OpenGL NV12 + libx264 main (8 threads)
Decoder: ... software ... 4 threads
Streaming Latency: 30ms to 31ms with many spikes up to about 75ms for display
Incoming bitrate: a steady 94000 Kb/s (11.5 MB/s)

By the numbers software encoding seems slightly better, even though it's using the delayed screen capture method.

However DOOM (and id tech 6's megatextures) are extremely CPU hungry when textures are being paged in. Any significant running around splits CPU usage between In-Home streaming's software encoder and DOOM causing the latency spikes mentioned. Games with more restricted CPU usage don't show the latency spikes.

Subjectively both feel the same to me and neither feel as good as when plugged directly into the monitor. I was still happilly stomping through hell on nightmare so In-Home streaming is an extraordinary technical achievement.

For completeness I swapped the client and server around to try AMD and Intel encodings (the 5930K doesn't have integrated graphics but the 4770K has a 4600 HD chip).

Host settings: Enable hardware encoding on AMD GPU
The client runs for a couple of seconds of extremly jittery play before degenerating into a mass of pshycadelic blocks then crashing.

Host settings: Enable hardware encoding on Intel iGPU
The client is unplayable at 2560x1440 with latencies of over 100ms, sometimes going to several seconds. Reducing the resolution to 1280x720 gives a sligtly stuttery 30 FPS.

The lesson here is: don't use Intel or AMD hardware encoding, not yet anyway. Stick to software encoding if you have an AMD graphics card.
最後修改者:Dragon; 2016 年 6 月 12 日 上午 10:10
< >
目前顯示第 1-8 則留言,共 8
每頁顯示: 1530 50

所有討論 > General Discussion > 主題細節
張貼日期: 2016 年 1 月 9 日 上午 2:26
回覆: 8