<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 21 Apr 2020 at 12:22, Samuel Hurst <<a href="mailto:samuelh@rd.bbc.co.uk">samuelh@rd.bbc.co.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello!<br>
<br>
I'm experimenting with using the SRT [1] protocol and I noticed that<br>
GStreamer has a collection of SRT elements, so I've been trying to get<br>
them to work. However, I can't actually get any streaming to actually start.<br>
<br>
With my distro not offering any SRT packages, I've compiled up a full<br>
GStreamer instance from git sources (so up to date on 1.17 as of<br>
yesterday morning) with libsrt at version 1.4.1.<br>
<br>
As a first step, I've been following a guide from Collabora [2] to<br>
experiment with it, and I'm using the following pipelines as server and<br>
client respectively (on the same physical machine):<br>
<br>
> 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/<br>
<br>
> gst-launch-1.0 srtsrc uri=srt://<a href="http://127.0.0.1:8888/" rel="noreferrer" target="_blank">127.0.0.1:8888/</a> ! decodebin ! autovideosink<br>
<br>
The pipeline on both sides of the equation enter the PLAYING state, and<br>
I can see the two peers connect and perform the handshake, but the<br>
playback counter on the server never begins counting and I never get a<br>
video window opening on the client side.<br>
<br>
With GST_DEBUG="srt:9", I can see that the server seems to be stuck<br>
waiting for a caller request after the client has "connected":<br>
<br>
> 0:00:02.768093620 16974 0x555ed162d8f0 DEBUG  srtobject gstsrtobject.c:679:thread_func:<srtsink0> Waiting a request from caller<br>
<br>
Reading through the code, I can't figure out how the caller is supposed<br>
to submit a request, that will presumably kick off the sending of the<br>
stream. The client is just sat there waiting for frames it seems.<br>
<br>
Does anyone have any experience with these elements and might be able to<br>
shed some light on what these problems are?<br>
<br>
<br>
Best Regards,<br>
Sam<br>
<br><br></blockquote><div>Hi Sam,</div><div>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.</div><div><br></div><div>I would tend to put the destination as srt://<a href="http://127.0.0.1:8888">127.0.0.1:8888</a> rather than without the IP address when testing locally.  And to receive, try using VLC.</div><div>VLC will play srt, eg in this case open a network stream in VLC with url srt://@:8888 or even srt://<a href="http://127.0.0.1:8888">127.0.0.1:8888</a></div><div><br></div><div>SRT communication is setup between a caller and a listener and they have to have established a connection before any stream will transmit.</div><div><br></div><div>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.</div><div><br></div><div>Cheers,</div><div>Simon</div><div> </div></div></div>