SRT stream not sending
Simon Brown
simon.k.brown at gmail.com
Tue Apr 21 11:31:10 UTC 2020
On Tue, 21 Apr 2020 at 12:22, Samuel Hurst <samuelh at rd.bbc.co.uk> wrote:
> Hello!
>
> I'm experimenting with using the SRT [1] protocol and I noticed that
> GStreamer has a collection of SRT elements, so I've been trying to get
> them to work. However, I can't actually get any streaming to actually
> start.
>
> With my distro not offering any SRT packages, I've compiled up a full
> GStreamer instance from git sources (so up to date on 1.17 as of
> yesterday morning) with libsrt at version 1.4.1.
>
> As a first step, I've been following a guide from Collabora [2] to
> experiment with it, and I'm using the following pipelines as server and
> client respectively (on the same physical machine):
>
> > gst-launch-1.0 videotestsrc ! video/x-raw,height=800,width=600 !
> videoconvert ! x264enc tune=zerolatency ! video/x-h264,profile=high !
> srtsink uri=srt://:8888/
>
> > gst-launch-1.0 srtsrc uri=srt://127.0.0.1:8888/ ! decodebin !
> autovideosink
>
> The pipeline on both sides of the equation enter the PLAYING state, and
> I can see the two peers connect and perform the handshake, but the
> playback counter on the server never begins counting and I never get a
> video window opening on the client side.
>
> With GST_DEBUG="srt:9", I can see that the server seems to be stuck
> waiting for a caller request after the client has "connected":
>
> > 0:00:02.768093620 16974 0x555ed162d8f0 DEBUG srtobject
> gstsrtobject.c:679:thread_func:<srtsink0> Waiting a request from caller
>
> Reading through the code, I can't figure out how the caller is supposed
> to submit a request, that will presumably kick off the sending of the
> stream. The client is just sat there waiting for frames it seems.
>
> Does anyone have any experience with these elements and might be able to
> shed some light on what these problems are?
>
>
> Best Regards,
> Sam
>
>
> Hi Sam,
I don't have direct experience with Gstreamer SRT itself, but have used SRT
extensively on other applications. One thing that might be worth trying is
testing one pipeline at a time.
I would tend to put the destination as srt://127.0.0.1:8888 rather than
without the IP address when testing locally. And to receive, try using VLC.
VLC will play srt, eg in this case open a network stream in VLC with url
srt://@:8888 or even srt://127.0.0.1:8888
SRT communication is setup between a caller and a listener and they have to
have established a connection before any stream will transmit.
If you download the source from github then you can build srt-live-transmit
and use that to send and/or receive an SRT stream and convert it from/to
UDP.
Cheers,
Simon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200421/a75bbea5/attachment.htm>
More information about the gstreamer-devel
mailing list