Android Video Streaming Latency Issue...

Raushan Kumar Choudhary raushankumar at tataelxsi.co.in
Tue Nov 17 01:17:12 PST 2015


Hello,


  Thanks for your Reply.

   We have tried using following  pipeline :

1. data->pipeline =gst_parse_launch("udpsrc port=5000 caps =\"application/x-rtp, media=video,clock-rate=(int)90000,encoding-name=(string)H264\" ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! autovideosink enable-last-buffer=true",&error);

2. data->pipeline =gst_parse_launch("udpsrc port=5000 caps =\"application/x-rtp, media=video,clock-rate=(int)90000,encoding-name=(string)H264\" !  rtph264depay ! avdec_h264 ! autovideosink enable-last-buffer=true",&error);



  in 1st case video is smooth but the latency is around  5 to 10s but In 2nd case we are having distorted video and latency is around 1s .

  Can you please let us know which pipeline we should use so that we can get latency around 150ms and video playing should be smooth.


Thanks,
Raushan


________________________________
From: gstreamer-devel <gstreamer-devel-bounces at lists.freedesktop.org> on behalf of Nicolas Dufresne <nicolas.dufresne at collabora.com>
Sent: Monday, November 16, 2015 11:15 PM
To: Discussion of the development of and with GStreamer
Subject: Re: Android Video Streaming Latency Issue...

Le lundi 16 novembre 2015 à 06:25 +0000, Atul Ankush Bhandare a écrit :

Hello,


We use GStreamer 1.0 for Android,in that use Gstreamer tutorial 3, and Change the pipeline,


pipeline is,


data->pipeline =gst_parse_launch("udpsrc port=5000 caps =\"application/x-rtp, media=video,clock-rate=(int)90000,encoding-name=(string)H264\" ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! autovideosink sync=false async=false enable-last-buffer=true",&error);

rtpjitterbuffer have a property called "latency" in millisecond. By default this is configured at 0.2s (200). So it effectively contribute 200ms of latency. Though, this element is meant to work on a synchronized pipeline, and you set sync=false, and async=false. Both of these settings are very bad decisions. This will disable synchronization and during burst, frames will accumulate in the jitterbuffer and never be dropped to compensate the drift. As software decoder is also often slow and rendering on Android is often limited to 30fps (or less sometimes), it will keep accumulating. I strongly recommend leaving these two properties alone.

Nicolas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20151117/111f9ee1/attachment.html>


More information about the gstreamer-devel mailing list