[FFmpeg-user] How does FFmpeg + NVENC scale with multiple instances?
PSPunch
shima at pspunch.com
Fri Mar 25 08:10:50 CET 2016
On 2016/03/25 15:03, Sreenath BH wrote:
> 1. You have to assign a gpu core by using "-gpu <number>' flag to ffmpeg.
> So we need to figure out which gpu is free and use that.
> 2. I could be wrong, but once a gpu core is assigned, it will use only
> that core and will not switch to other cores. If you have only one gpu
> core, this is not an issue.
> 3. When you run two ffmpeg instances on same gpu core, the time taken
> to transcode almost doubles.
Sorry for lacking clarity.
I actually have a working setup on my GTX660M.
However, from what I read, with lower grade GPUs the number of
simultaneous encoding instances is limited to 2 by the driver regardless
of how many cores you have. (I assume for marketing purposes)
That is exactly what I see on mine. Two realtime HD transcodes with out
sweat on a mobile GPU. Amazing... but the 3rd instance of FFmpeg fails
at start up.
If you've got 4 instances running with a build using the current SDK, I
am assuming you have a non-lower-end card that will run even more.
Would you mind sharing what GPU you use?
> The nvidia encoder, when used for transcoding, creates files with high
> bitrates(and large file sizes) as compared with libx264 s/w codec. I
> have not found ways to control bitrate without loss of picture
> quality.
I was able to gain some control using the -maxrate option.
I see what you mean about quality and agree with you.
For the particular application in mind, I found the balance in bitrate
v.s. quality acceptable if it allows us to transcode 10s of live streams
in one box... hopefully on an ordinary desktop PC.
--
David Shimamoto
More information about the ffmpeg-user
mailing list