Closed AMDJona closed 5 years ago
If you are trying to record 1920x1080 360 FPS, your test shows that at best you'll manage 198.5 FPS. For 1280x720, you should manage 404 FPS at best. This is with a GPU test that only tests raw encoding performance, nothing else. In reality you are bound by a lot of factors.
Like always, the "performance test" is a benchmark. It does not apply to real world and only shows the potentially best encoding performance with a ridiculously simple 3D scene. Seriously, open up one of the resulting .h264 and .h265 files in VLC and take a look at just how simple that scene is.
Edit: TL;DR: Your GPU might be capable of it, but you are being bottlenecked by the rest of the hardware and software running on your system. Solutions don't exist yet.
Okay thanks. OFC I knew that the benchmark wouldn't be like any real world, but i also triedrecording Desktop and Minecraft, none of them even worked at 720P 300FPS. Also as seen in the above mentioned log, i recordet in 1280x720
I can also see that it isn't a CPU Ram or HDD problem... Thanks for your help
To explain a bit further, a 360 FPS 1280x720 NV12 data stream is 480mb/s VRAM, PCI-e, CPU and RAM bandwidth usage, plus an additional 480mb/s VRAM, PCI-e, CPU and RAM bandwidth usage for the upload, plus an additional 480mb/s (or higher) VRAM bandwidth usage for encode, plus whatever bandwidth is used to store the encoder state in VRAM and RAM, plus whatever bandwidth ends up used by the final encoded bitstream, which takes VRAM, PCI-e, CPU and RAM bandwidth, only to then be pushed to ffmpeg-mux which takes additional CPU and RAM bandwidth and then finally be pushed to disk which takes additional CPU, RAM and Chipset bandwidth. That is anywhere from 1440mb/s to several gb/s, it doesn't sound like a lot but it's a huge bottleneck as this requires synchronization between CPU and GPU.
Unfortunately libOBS / OBS Studio is currently far from the most efficient for high framerate recording. It should manage 120 fps at 1920x1080p RGBA with ease as long as you use a software encoder, but there is just way too much overhead with hardware encoders. I know for a fact that with a ThreadRipper 1950X and a 1080 Ti, the best resolution I can encode at with NVENC is 2560x1440 RGBX with barely over 60 fps. Anything higher than that and I end up skipping frames hardcore.
An Option you could try is using OpenCL. It has slightly higher encode latency, but can deal with bottlenecks much better than DirectX 11 can. You should be able to see than option under View Mode Advanced.
Thanks for your explanation! So Overclocking the VRam and Ram should also help it a bit I guess... Im pretty much fine since 1080P 120FPS recording works, which is the most important for me (Got a 144hz Screen) I only got one question left. How does Shadowplay for example record 4K 60 with a GTX 1060? Are you really shure your 1080 TI can't handle more?
Also thanks a lot for helping me and doing this AMF encoder project at all!
btw If there is any way I can help Improve this plugin, let me know
I only got one question left. How does Shadowplay for example record 4K 60 with a GTX 1060? Are you really shure your 1080 TI can't handle more?
I don't know what the actual limits of a Pascal based GPU are, but the Nvidia slides are actually pretty accurate on this: https://developer.nvidia.com/nvidia-video-codec-sdk . Basically a Pascal/Volta card is currently the fastest there is in terms of hardware encoding and also provides the best quality, which has been confirmed by a lot of people.
Shadowplay and Relive don't have the overhead that going through OBS incurs. I'm on an older FX / PCIe 2.0 system with an RX 580, and I can't stream pubg using OBS for example. Just lags to hell and back.
But with Relive, I can stream pubg no problem.
There is ongoing work to reduce the OBS overhead for GPU encoders, however it is still some distance out.
Closing due to inactivity.
Hey. First off all thanks for improving this plugin more and more. Finally H265 works, before it was always stuck at "stopping recording" , that is fixed now. I can record 1080 60 aswell as 720 240, but 360FPS isn't working. Keeps getting encoding overloaded errors.
This is my obs log:
This is my h265 performance test
ResultsH265.zip
Specs: 6700k RX 580 Windows 10 64bit 16gb ddr4 OBS 21.1.2 64 bit