[FFmpeg-user] Live Transcoding: What Causes Large Time Gaps from Input to Output

Shane Warren shanew at innovsys.com
Tue Jan 14 19:36:37 EET 2025


I am transcoding live multicast using hardware (decoding using nvidia and encoding using nvidia (h264_nvenc) and going out multicast at fixed framerate and constant bitrate. Normally the output is about 3-5 seconds behind the input.

I have some streams that cause the output to eventually get minutes behind the input. I've narrowed down the input buffering being the culprit of holding a very large buffer of input frames in these situations.

Here is my command:

ffmpeg -y -threads 2 -nostats -nostdin -loglevel verbose -progress pipe:1 -probesize 5M -filter_threads 4 -threads 2 -re -fflags +genpts -fflags discardcorrupt -hwaccel_device 0 -extra_hw_frames 2 -hwaccel_output_format cuda -hwaccel cuda -heavy_compr 1 -thread_queue_size 512 -i "udp://@225.105.0.27:10102?fifo_size=1073440&buffer_size=2129920&timeout=800000" -autoscale 0 -threads 2 -filter_complex "[0:v:0]fps=30000/1001,yadif_cuda,scale_npp=1920:1080:interp_algo=super:format=yuv420p [vout]" -map "[vout]" -map "0:a:0" -map 0:d? -filter:a:0 "aresample=async=10000,volume=1.00"  -c:a:0 aac  -threads 2 -ac:a:0 2 -ar:a:0 48000 -b:a:0 192k -flush_packets 0 -c:v h264_nvenc -b:v 6000k -minrate:v 6000k -maxrate:v 6000k -bufsize:v 12000k -a53cc 1 -tune ll -zerolatency 1 -cbr 1 -forced-idr 1 -strict_gop 1 -threads 2 -profile:v high -level:v 4.2 -bf:v 0 -g:v 15  -f fifo -drop_pkts_on_overflow 1 -attempt_recovery 0 -fifo_format mpegts -format_opts muxrate=6800440:pes_payload_size=1528 "udp://@225.105.0.65:10102?pkt_size=1316&bitrate=6800440&burst_bits=10528&ttl=64"

I suspect the input stream does something odd and causes ffmpeg to buffer frames and it gets slowly behind. I would like to make ffmpeg drop frames if possible, instead of forever buffering frames and getting further and further out of sync.

Is there anything anyone can recommend to force ffmpeg to stop buffering input frames?


More information about the ffmpeg-user mailing list