[FFmpeg-devel] NVENC H.265 4K Uncatchable 60fps Performance

Ali KIZIL alikizil at gmail.com
Tue Apr 14 00:32:21 CEST 2015


Timo Rothenpieler <timo <at> rothenpieler.org> writes:

> 
> > I have a few questions.
> > I will be grateful is someone can give an idea / reply.
> >
> > 1) On nvenc.c under libavcodec, is it possible to create more than 
one
> > instance of nvenc to perform 4K 60 fps encoding using
> > nvEncodeAPICreateInstance ?
> 
> You could encode two independend video streams at 30 fps each. There 
is 
> no way two encode sessions can work on the same video stream.
> 
> > Is there any way to stack videos without re-encoding ?
> 
> No, that's not possible.
> 
> 
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel <at> ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 


BTW I got below email from Nvidia:

"My apologies… I made a mistake in my earlier response. I checked with 
the team, and confirmed that GM204 (GTX 980) should be able to do 60 fps 
H.264 at 4K x 2K (3840 x 2160) resolution.
 
I have a few questions. Are you using the nvencoder application with the 
NVENC SDK with HP preset and single pass rate control mode? Or some 
other settings?
 
How are you reading YUV file? Have you ensured that the code is 
pipelined such that there is no extra time spent in reading YUV frames 
into the video memory?"

Than I made a test:

4krun.sh file:
/root/NvEncoder -i /root/bunny.yuv -o /root/hevc -size 3840 2160 -codec 
1 -rcmode 2 -preset hp -fps 50 -goplength 50 -bitrate 40000000 -
vbvMaxBitrate 40000000 -vbvSize 120000000

I run the above command as below:

time ./4krun.sh

Here is the output:

Encoded 1077 frames in 20533.26ms
Avergage Encode Time :  19.07ms

real    0m21.821s
user    0m16.157s
sys     0m5.207s

It means depending on NvEncoder time measurement FPS is 52.45 (1077 / 
20.533), depending on Linux time measurement FPS is 49.35 (1077 / 
21.821).

However, FFmpeg can go up to 32-34 fps. There may be a memory management 
issue. If I succeed on comparing of code NvEncoder and nvenc.c, I will 
write here.


More information about the ffmpeg-devel mailing list