Managing the data flow from one pipeline to another

chintu2248 chintu2248 at
Tue Jul 2 18:06:08 UTC 2019

I have 2 pipelines 
pipeline 1
                          custom sink set through "video-sink" property of
 playbin3 ---->  | queue ----> x264enc ----> appsrc    |

pipeline 2 is an RTSP pipeline using gst-rtsp-server and , it gets its data
from the above pipeline's appsink.
The pipeline in rtsp->set_launch is :
| appsrc ---> h264parse ---> mpeg2tsmux ---->  rtpmp2tpay --> rtpbin     |

The problem I am facing is that the playbin3 is decoding the data and
pushing it at a much faster rate than the rtsp pipeline is sending the data.
The reason why this is a concern because the video that we are streaming
contains multi-angle view stream and the video stream can be changed based
on the users preference. We are doing this using the playbin3 and decodebin3
, change-video property.

Now because the data is being sent so quickly, by the time the users change
track request comes most of the video is already decoded by the playbin and
sent .

Is there a better  way to handle this?
We were thinking that maybe perform a seek to the original time where the
user had sent the change-track request and start decoding and sending the
frames again.

Our current implementation is giving us a lot of problems.

We also tried using the "feed-data" and "enough-data" signals from appsrc,
but when we used this, I  gets a "feed-data" signal twice and then the
pipeline simply stop buffering anything.

Any help regarding this would be greatly appreciated.


Sent from:

More information about the gstreamer-devel mailing list