Page 1 of 1

Temporary video cut-out after start

Posted: 21 Jan 2015 20:03
by davecove
I hope someone can help me here, I am going crazy trying to figure this out.

I have an Axis IP camera I am trying to stream from. When I run VLC like this:

Code: Select all

vlc.exe rtsp://root:root@192.168.42.27:554/axis-media/media.amp
I get an image immediately, but after several seconds the image drops to a gray screen for several seconds (the drop-out) before returning and being stable for the rest of the run. The same thing happens on other Axis models and even other brands of camera (Panasonic). It does not happen when run on Ubuntu 14.04, only on the Windows version.

During the drop-out, this appears in the log:

Code: Select all

[0000000003ba38e0] live555 demux debug: tk->rtpSource->hasBeenSynchronizedUsingRTCP() [0000000002482680] main input error: ES_OUT_RESET_PCR called [0000000002482680] main input debug: Buffering 0% [0000000002482680] main input debug: Buffering 10% [0000000002482680] main input debug: Buffering 20% [0000000002482680] main input debug: Buffering 30% [0000000002482680] main input debug: Buffering 40% [0000000002482680] main input debug: [Buffering 50%0000000003bf1d20] main decoder debug: End of video preroll [0000000003bf1d20] main decoder debug: Received first picture [0000000002482680] main input debug: Buffering 60% [0000000002482680] main input debug: Buffering 70% [0000000002482680] main input debug: Buffering 80% [0000000002482680] main input debug: Buffering 90% [0000000002482680] main input debug: Stream buffering done (333 ms in 329 ms) [0000000002482680] main input debug: Decoder buffering done in 0 ms [0000000006efcaf0] main video output debug: picture might be displayed late (missing 9 ms)
I see that it appears to be buffering after it has already started displaying video. Is there a way I can get it to buffer so that the video doesn't drop-out once it has started? Even if that means waiting a bit for the video to first appear?

Dave

Re: Temporary video cut-out after start [Why Explained]

Posted: 22 Jan 2015 19:49
by davecove
Answering my own question:

When the video first appears, after the first buffer period, the first few presentation times (PCRs) - before RTCP synchronization occurs - are just 'guesses' made by the receiving code (based on the receiver's 'wall clock' and the RTP timestamp). Once RTCP synchronization occurs, all subsequent presentation times will be accurate, but the ones in the buffer from before the sync are inaccurate.

In the VLC log, I very clearly see this:

Code: Select all

live555 debug: tk->rtpSource->hasBeenSynchronizedUsingRTCP() main error: ES_OUT_RESET_PCR called
The first line is a notification that the RTCP synchronization has just happened. The second indicates that the buffer has been flushed because their PCRs are incorrect. Buffering then happens again and video begins playing consistently after that.

My guess is that there is a switch to tell VLC not to buffer/play until the RTCP sync happens. I will now be posting a question addressing that.