[Libav-user] latency of mpegts handling in libavformat
alexcohn at netvision.net.il
Mon Jul 25 09:09:56 CEST 2011
On Monday, July 25, 2011, כרמל מגן <carmel.work at gmail.com> wrote:
> I have investigated the matter some more, and it seems that the delay is
exatcly 2 frames (its 80 ms when I use PAL 25 fps video and 66 ms when I
use NTSC 30 fps video). Furthermore, it appears when sending frames 1,2,3
av_read_frame does not return with frame 1 before I start sending frame 3.
Does anybody have an idea why this might happen and how I can prevent it?
The stream has a setting of max b-frames. If you can control your source,
simply set th his parameter to 0. Otherwise, you can work around the delay
produced by libav, but when the b-frame actually arrives, you will have to
wait, anyway. The behavior of libav is tuned to provide smooth playback with
> 2011/7/19 כרמל מגן <carmel.work at gmail.com>
>> I have been integrating mpeg2 transport stream support into an
application I'm developing using libavformat.
>> After successfully transmitting my video (h.264 frames encoded by the
calling application) and receiving it, I did some latency testing.
>> To my surprise, I calculated 80 ms between the time that I finished
sending the frame in one process (av_write_frame returns) until I finish
receiving it in the second process (av_read_frame returns and the packet
contains the same frame).
>> To identify the frame I used the pts field of the packet. (i.e I printed
the time when sending together with the pts of the frame, and then the time
of receiving together with the pts of the frame, and then calculated the
>> This was tested using multicast transmission between 2 processes on the
same computer (on two different machines sitting on different networks) so I
don't believe network latency can account for it.
>> Can anybody explain what might be taking all that time and how I can
reduce it? My application demands very low latency.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Libav-user