[FFmpeg-user] Reducing end to end streaming latency (bmd->udp->bmd) < 0.5s

Carl Eugen Hoyos cehoyos at ag.or.at
Fri Mar 21 11:45:58 CET 2014

Anusha Balan <Anusha.Balan <at> intusurg.com> writes:

> I managed only about 1.5 - 2s which is extremely high for 
> the interactive application for which I intend to use this.
> From this article, it seems feasible that with a dedicated 
> and powerful what I mentioned above is possible.
> (Given it was 2010, when it was written)
> http://x264dev.multimedia.cx/archives/249

Iirc, the article only covers x264 (not FFmpeg).

> ./bmdcapture -C0 -m11 -V4 -v -F nut -f pipe:1  | 
> ffmpeg -i - -vcodec libx264 -preset ultrafast -crf 22

Isn't this missing -probesize and -analyzeduration?

> -pix_fmt yuv420p -tune zerolatency -threads 8 -keyint_min 5 
> -maxrate 800000 -bufsize 26666 -intra-refresh 1 -f mpegts 
> udp://

(FFmpeg console output missing.)

> ffmpeg -i udp:// -probesize 100 
> -analyzeduration 50 -f decklink -s 1920x1080 -fflags nobuffer 
> -r 30000/1001 -g 10 -pix_fmt uyvy422 -an "DeckLink 4K Extreme"

Did you test where the latency comes from?
How does bmdcapture | ffmpeg -i - -f xv / opengl / sdl work?
What about ffmpeg -i rawfile -f decklink?
Did you test a pipe between two ffmpeg processes on one computer?

Any reason you don't set buffer_size (which is probably the 
reason - or one of the reasons - for your delay)?

Carl Eugen

More information about the ffmpeg-user mailing list