Page 1 of 1

Latency when displaying a live RTP stream

Posted: 23 Jul 2010 16:45
by ghazzalyahmad
Hello everyone,

I am currently writing an application to display a live RTP video stream. I get some latency around 1 second which is not acceptable by the application's requirements. The latency occurs when the video camera is disconnected from the video server and then reconnected. Looking at the logs created i see that there is "main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 647 ms)", where the pts-delay increases each time the video camera is disconnected and reconnected.

Is there a way to avoid this latency and keep the video stream be displayed continuously with no delays?

Thanks in advance for your help... :)

Gr.
Ghazali

I am using VLC 1.1.1 and VLCJ as a java binding wrapper.
The following is the command-line parameters that is used:
--clock-synchro=1;--file-caching=50;--vout=opengl;--deinterlace-mode=linear;--no-audio;--no-osd;--quiet-synchro;--no-video-title-show;--no-interact;--no-sub-autodetect-file;--aspect-ratio=1380:1000;--high-priority;--no-one-instance;--ffmpeg-hurry-up;--ffmpeg-skip-frame=4;--ffmpeg-skip-idct=4;--ffmpeg-skiploopfilter=4;--no-ps-trust-timestamps;--skip-frames

The following is the log:
_ _
__ _| | ___ (_)
\ \ / / |/ __|| |
\ V /| | (__ | |
\_/ |_|\___|/ | 1.1.1
|__/

VLCJ is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

VLCJ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with VLCJ. If not, see <http://www.gnu.org/licenses/>.

Copyright 2009, 2010 Caprica Software Limited.

Error, header damaged or not MPEG4 header (f_code=0)
header damaged
[04f5727c] avcodec decoder warning: cannot decode one frame (6127 bytes)
hmm, seems the headers are not complete, trying to guess time_increment_bits
my guess is 5 bits ;)
looks like this file was encoded with (divx4/(old)xvid/opendivx) -> forcing low_delay flag
[04f5727c] avcodec decoder warning: disabling direct rendering
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6105 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6678 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6645 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (7110 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6608 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6375 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6828 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6092 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6126 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (5969 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6191 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6328 bytes)
picture size invalid (0x0)
get_buffer() failed (-1 0 0 00000000)
[04f5727c] avcodec decoder warning: cannot decode one frame (6223 bytes)
[04faf20c] main video output warning: vlc_object_find_name(postproc) is not safe!
[04faf20c] main video output warning: late picture skipped (278674 > -2257)
[04faf20c] main video output warning: late picture skipped (358674 > -2257)
[04faf20c] main video output warning: late picture skipped (318674 > -2257)
[04faf20c] main video output warning: late picture skipped (240669 > -2257)
[04faf20c] main video output warning: late picture skipped (135563 > -2781)
[04f5fd4c] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 50 ms)
[04f5fd4c] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 300 ms)
[04f5fd4c] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 602 ms)

[04faf20c] main video output warning: late picture skipped (167866 > -3013)
[04faf20c] main video output warning: late picture skipped (127866 > -3013)
[04faf20c] main video output warning: late picture skipped (87866 > -3013)
[04faf20c] main video output warning: late picture skipped (47866 > -3013)
[04faf20c] main video output warning: late picture skipped (7866 > -3013)
[04faf20c] main video output warning: late picture skipped (193357 > -3596)
[04faf20c] main video output warning: late picture skipped (153357 > -3596)
[04faf20c] main video output warning: late picture skipped (113357 > -3596)
[04faf20c] main video output warning: late picture skipped (73357 > -3596)
[04faf20c] main video output warning: late picture skipped (34622 > -3596)
[04f5fd4c] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 647 ms)

Re: Latency when displaying a live RTP stream

Posted: 03 Aug 2010 16:53
by ghazzalyahmad
Hi everyone,

I think I have a solution to this problem, at least it works with me. I added the following parameter:
--clock-jitter=0

Adding this parameter caused the pts_delay to be ignored as follows:
[03ef7290] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (jitter of 225 ms ignored)
[03ef7290] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (jitter of 552 ms ignored)

Hope this help anyone who is running into the same problem.