Brainiarc7 / ffmpeg-nvenc-windows-build-with-mxe

This is a Windows-only build of FFMpeg that you can cross-compile on Linux with mxe toolkit. This build supports NVIDIA NVENC hardware encoder on Kepler and Maxwell GPUs.
Other
7 stars 2 forks source link

fps limitation for ffmpeg-nvenc (no more than two sessions for the HD video source coding) #2

Open compressionist opened 9 years ago

compressionist commented 9 years ago

Hi, I'm having trouble to transcode (i.e. using ffmpeg + nvenc, K4200 and 2xE5-2670) HD-udp source (1080i@50) for more than two UDP streams at a lower resolution (i.e. 540p or less). When the third stream is added the fps at all output streams drop to less than 25 (the system does not have any problems with the cpu and memory resources for both the processor and nvenc, all metrics are very low). I solved this problem by re-transcoding 1080i source to 540p, then I can re-encode 540p to four or more output streams at the same time without any problems. However, my solution is not fit us because of the more complex scheme and potential problems associated with this.

So, maybe somebody knows how to solve this problem without re-transcoding?


ffmpeg -i 'udp://@udpaddress?fifo_size=1000000&buffer_size=425984&overrun_nonfatal=1' \ -map 0:v -threads 4 -filter:v "yadif, scale=704:400" \ -c:v nvenc -fflags "+genpts+igndts" \ -b:v 1600K -g 75 -r 25 -maxrate 3200k -bufsize 3200k -sc_threshold 0 \ -map 0:a:0 -c:a libvo_aacenc -b:a 96K -ac 2 -ar 44100 -f mpegts \ "udp://@localhost:port00?pkt_size=1316" \ -map 0:v -threads 4 -filter:v "yadif, scale=960:540" \ -c:v nvenc -fflags "+genpts+igndts" \ -b:v 2600K -g 75 -r 25 -maxrate 5200k -bufsize 5200k -sc_threshold 0 \ -map 0:a:0 -c:a libvo_aacenc -b:a 96K -ac 2 -ar 44100 -f mpegts \ "udp://@localhost:port01?pkt_size=1316" \ -map 0:v -threads 4 -filter:v "yadif, scale=480:270" \ -c:v nvenc -fflags "+genpts+igndts" \ -b:v 400K -g 75 -r 25 -maxrate 800k -bufsize 800k -sc_threshold 0 \ -map 0:a:0 -c:a libvo_aacenc -b:a 96K -ac 2 -ar 44100 -f mpegts \ "udp://@localhost:port02?pkt_size=1316" \ -map 0:v -threads 4 -filter:v "yadif, scale=640:360" \ -c:v nvenc -fflags "+genpts+igndts" \ -b:v 900K -g 75 -r 25 -maxrate 1800k -bufsize 1800k -sc_threshold 0 \ -map 0:a:0 -c:a libvo_aacenc -b:a 96K -ac 2 -ar 44100 -f mpegts \ "udp://@localhost:port03?pkt_size=1316" \