Live gpu h265 4k video encoding - needed gpu power

Questions involving a Windows version of FFmpeg.
Post Reply
MrSheep
Posts: 1
Joined: Fri Apr 12, 2019 7:20 am

Live gpu h265 4k video encoding - needed gpu power

Post by MrSheep » Fri Apr 12, 2019 7:25 am

Hi there,

I have 2x4k yuv 4:4:4 raw streams (about 225MB/s per stream) coming from two cameras, which i would like to encode with ffmpeg using h265 on the GPU. We currently have the Nvidia Quadro P5000 as working setup, which needs about 40% of the available GPU power. Since this graphic card is quite expensive, how can we know which cheaper GPU has still the needed power to encode the video streams?

full ffmpeg settings to capture

Code: Select all

ffmpeg -f decklink -i "capture_card" -map 0:v -an -c:v hevc_nvenc -preset slow -rc constqp -qp 30 -vf format=yuv420p -g 150 output.mp4
Thanks for your help!
best Chris

pandy
Posts: 183
Joined: Mon Feb 24, 2014 1:46 pm

Re: Live gpu h265 4k video encoding - needed gpu power

Post by pandy » Tue Apr 16, 2019 2:11 pm

You should check official NVidia documentation.

Video_Codec_SDK_9.0.20\doc\NVENC_Application_Note.pdf

Between Quadro and ordinary NVidia cards there is very substantial difference, allow me to quote NVidia:
3. NVENC LICENSING POLICY
There is no change in licensing policy in the current SDK in comparison to the earlier
SDKs. The licensing policy is as follows:
As far as NVENC hardware encoding is concerned, NVIDIA GPUs are classified into two
categories: “qualified” and “non-qualified”. On qualified GPUs, the number of concurrent
encode sessions is limited by available system resources (encoder capacity, system
memory, video memory etc.). On non-qualified GPUs, the number of concurrent encode
sessions is limited to 2 per system. This limit of 2 concurrent sessions per system applies
to the combined number of encoding sessions executed on all non-qualified cards present
in the system.
For a complete list of qualified and non-qualified GPUs, refer to
https://developer.nvidia.com/nvidia-video-codec-sdk.
For example, on a system with one Quadro K4000 card (which is a qualified GPU) and
three GeForce cards (which are non-qualified GPUs), the application can run N
simultaneous encode sessions on Quadro K4000 card (where N is defined by the
encoder/memory/hardware limitations) and two sessions on all the three GeForce cards
combined. Thus, the limit on the number of simultaneous encode sessions for such a
system is N + 2.
Also it is quite important to mention that some NVidia GPU's are equipped with more than single NVEnc unit.
Highly recommends to use official NVidia documentation.

I should add that you should use latest and cheapest NVidia card - you don't need to pay for 3D part as it is NOT NVEnc thus budget video card is fine, latest NVidia chip gives usually better speed, quality and compatibility in term of NVEnc (every silicone iteration NVidia introduce HW improvements in NVEnc) as such budget card with overall low 3D performance is still same as high end one from video encoding perspective.

Post Reply