How to restart a pipeline after network connection loss?

virtually_me at claub.net virtually_me at claub.net
Thu Aug 22 11:50:38 UTC 2019


I have an application where the IP for an RTP source can be down or go down. I am also using the command line (testing) version of gstreamer. I wrote a small script to ping the IP address every few seconds. If the ping reaches the machine the return code is zero and I start up the pipeline if it not already running. Otherwise I kill gst-launch-1.0. When the IP is up again I re-launch the pipeline. 

-----Original Message-----
From: gstreamer-devel <gstreamer-devel-bounces at lists.freedesktop.org> On Behalf Of Jorne De Smedt | IndigoCare
Sent: Thursday, August 22, 2019 6:07 AM
To: Discussion of the development of and with GStreamer <gstreamer-devel at lists.freedesktop.org>
Subject: RE: How to restart a pipeline after network connection loss?

I've been trying this, but after setting the pipeline to NULL, it'll go to ready and paused, but it won't go to playing after that.

-------------------------------------

Le mardi 06 août 2019 à 08:17 +0000, Jorne De Smedt | IndigoCare a écrit :
> Hello,
>  
> I’ve been trying to get an rtsp stream working on Android, based on the tutorials.
> Now, the basic stream itself works, but whenever the stream is lost 
> (due to network issues or other reasons), the stream just pauses and I 
> can’t seem to figure out how to restart it without restarting the app.
> (Sometimes it also shows a “no signal” screen, but I’m unsure if this 
> is part of gstreamer or the source.) There’s also a light issue that 
> whenever the stream is just a slideshow of static images, it gets 
> stuck on the first frame (unless you put an animation in there 
> somewhere, like a single animated slide or animated pixel). I’m unsure 
> if this is related to the previous issue
> 
> The goal is to have the app display the stream 24/7, so it should try to reconnect until it finds the stream again.
>  
> I’m currently using the following pipeline:
> "rtspsrc name=source location=rtsp://192.168.30.4:554/0 ! rtph264depay ! h264parse ! decodebin name=convert ! glimagesink"
>  
> Which seems to do the same as the previous one I used:
> "uridecodebin name=source ! videoconvert name=convert ! glimagesink"
>  
> What is the right way to restart a pipeline like this?
> Do I need to use a dynamic pipeline instead of one like this?

Can't you just cycle the element through NULL/PLAYING, giving it a grace delay to avoid spinning ?

> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list