<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Thanks for your guidance Mathieu !!!<div><br></div><div>I have been able to work through the documentation you linked to and have been able to build the <b>gst-plugins-rs </b>components and get<b> 2/3rd of the example running.</b></div><div>Referring to the 3 shell windows mentioned here:</div><div><div style="display: block;"><div style="-webkit-user-select: all; -webkit-user-drag: element; display: inline-block;" class="apple-rich-link" draggable="true" role="link" data-url="https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html?gi-language=c#usage"><a style="border-radius:10px;font-family:-apple-system, Helvetica, Arial, sans-serif;display:block;-webkit-user-select:none;width:300px;user-select:none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;text-decoration:none;" class="lp-rich-link" rel="nofollow" href="https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html?gi-language=c#usage" dir="ltr" role="button" draggable="false" width="300"><table style="table-layout:fixed;border-collapse:collapse;width:300px;background-color:#E5E6E9;font-family:-apple-system, Helvetica, Arial, sans-serif;" class="lp-rich-link-emailBaseTable" cellpadding="0" cellspacing="0" border="0" width="300"><tbody><tr><td vertical-align="center"><table bgcolor="#E5E6E9" cellpadding="0" cellspacing="0" width="300" style="font-family:-apple-system, Helvetica, Arial, sans-serif;table-layout:fixed;background-color:rgba(229, 230, 233, 1);" class="lp-rich-link-captionBar"><tbody><tr><td style="padding:8px 0px 8px 0px;" class="lp-rich-link-captionBar-textStackItem"><div style="max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" class="lp-rich-link-captionBar-textStack"><div style="word-wrap:break-word;font-weight:400;font-size:11px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-bottomCaption-leading"><a rel="nofollow" href="https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html?gi-language=c#usage" style="text-decoration: none" draggable="false"><font color="#272727" style="color: rgba(0, 0, 0, 0.847059);">gstreamer.freedesktop.org</font></a></div></div></td><td style="padding:0px 12px 0px 0px;" class="lp-rich-link-captionBar-rightIconItem" width="32"><a rel="nofollow" href="https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html?gi-language=c#usage" draggable="false"><img src="data:image/png;base64,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" draggable="false" style="pointer-events:none !important;display:inline-block;width:32px;height:32px;" class="lp-rich-link-captionBar-rightIcon" width="32" height="32" data-unique-identifier=""></a></td></tr></tbody></table></td></tr></tbody></table></a></div></div><br></div><div>
<div><b>The first shell</b> is working - the <b>signalling server</b> appears to be running</div><div><br></div><div><b>The second shell is working</b>, the <b>gstwebrtc-api </b>appears to be running a webserver, and I can connect to the page on port 9090 with a web gui showing a potential<b> “start capture” and a “remote streams”</b> section</div><div><br></div><div>However, <b>The third does not work:</b></div><div><br></div><div><b><i>gst-launch-1.0 webrtcsink name=ws meta="meta,name=gst-stream" videotestsrc ! ws. audiotestsrc ! ws.</i></b></div><div><br></div><div>attempts to start, and I can see it has contacted the signalling server, but it fails with the error sequence below:</div><div><br></div><div><div><b>Setting pipeline to PAUSED ...</b></div><div><b>Pipeline is live and does not need PREROLL ...</b></div><div><b>Pipeline is PREROLLED ...</b></div><div><b>Setting pipeline to PLAYING ...</b></div><div><b>New clock: GstSystemClock</b></div><div><b>Redistribute latency...</b></div><div><b>Redistribute latency...</b></div><div><b>ERROR: from element /GstPipeline:pipeline0/RsWebRTCSink:ws: GStreamer encountered a general stream error.</b></div><div><b>Additional debug info:</b></div><div><b>plugins/src/webrtcsink/imp.rs(1240): webrtcsink::webrtcsink::imp (): /GstPipeline:pipeline0/RsWebRTCSink:ws:</b></div><div><b>Signalling error: Unknown message from server: {"type":"welcome","peerId":"384ad93b-1089-4fb8-93f9-8a3e9ed709ba"}</b></div><div><b>Execution ended after 0:00:00.122527906</b></div><div><b>Setting pipeline to NULL ...</b></div><div><b>Freeing pipeline …</b></div><div><br></div></div><div>meanwhile, the signalling server has responded:</div><div><br></div><div><div><b>2023-07-09T08:03:49.938533Z  INFO ThreadId(01) gst_webrtc_signalling_server: Accepting connection from 127.0.0.1:39162</b></div><div><b>2023-07-09T08:03:49.938717Z DEBUG ThreadId(61) accept_async: gst_plugin_webrtc_signalling::server: new</b></div><div><b>2023-07-09T08:03:49.938901Z DEBUG ThreadId(61) accept_async: tungstenite::handshake::server: Server handshake done.    </b></div><div><b>2023-07-09T08:03:49.938926Z  INFO ThreadId(61) accept_async: gst_plugin_webrtc_signalling::server: New WebSocket connection this_id=0d76097e-e8fe-45d5-9769-b184bdc30ba8</b></div><div><b>2023-07-09T08:03:49.938959Z DEBUG ThreadId(61) accept_async: gst_plugin_webrtc_signalling::server: close time.busy=192µs time.idle=57.0µs</b></div><div><b>2023-07-09T08:03:49.939310Z  INFO ThreadId(56) gst_plugin_webrtc_signalling::server: Received message Ok(Text("{\"type\":\"setPeerStatus\",\"roles\":[\"producer\"],\"meta\":{\"name\":\"gst-stream\"}}"))</b></div><div><b>2023-07-09T08:03:49.939379Z DEBUG ThreadId(56) set_peer_status{peer_id="0d76097e-e8fe-45d5-9769-b184bdc30ba8" status=PeerStatus { roles: [Producer], meta: Some(Object {"name": String("gst-stream")}), peer_id: None }}: gst_plugin_webrtc_signalling::handlers: new</b></div><div><b>2023-07-09T08:03:49.939400Z  INFO ThreadId(56) set_peer_status{peer_id="0d76097e-e8fe-45d5-9769-b184bdc30ba8" status=PeerStatus { roles: [Producer], meta: Some(Object {"name": String("gst-stream")}), peer_id: None }}: gst_plugin_webrtc_signalling::handlers: registered as a producer peer_id=0d76097e-e8fe-45d5-9769-b184bdc30ba8</b></div><div><b>2023-07-09T08:03:49.939419Z DEBUG ThreadId(56) set_peer_status{peer_id="0d76097e-e8fe-45d5-9769-b184bdc30ba8" status=PeerStatus { roles: [Producer], meta: Some(Object {"name": String("gst-stream")}), peer_id: None }}: gst_plugin_webrtc_signalling::handlers: close time.busy=26.3µs time.idle=14.2µs</b></div><div><b>2023-07-09T08:03:49.981322Z DEBUG ThreadId(61) tungstenite::protocol: Received close frame: None    </b></div><div><b>2023-07-09T08:03:49.981347Z DEBUG ThreadId(61) tungstenite::protocol: Replying to close with Frame { header: FrameHeader { is_final: true, rsv1: false, rsv2: false, rsv3: false, opcode: Control(Close), mask: None }, payload: [] }    </b></div><div><b>2023-07-09T08:03:49.981357Z  INFO ThreadId(61) gst_plugin_webrtc_signalling::server: Received message Ok(Close(None))</b></div><div><b>2023-07-09T08:03:49.981361Z  INFO ThreadId(61) gst_plugin_webrtc_signalling::server: connection closed: None this_id=0d76097e-e8fe-45d5-9769-b184bdc30ba8</b></div><div><b>2023-07-09T08:03:49.981375Z DEBUG ThreadId(61) remove_peer{peer_id="0d76097e-e8fe-45d5-9769-b184bdc30ba8"}: gst_plugin_webrtc_signalling::server: new</b></div><div><b>2023-07-09T08:03:49.981401Z DEBUG ThreadId(61) remove_peer{peer_id="0d76097e-e8fe-45d5-9769-b184bdc30ba8"}: gst_plugin_webrtc_signalling::server: close time.busy=18.1µs time.idle=8.46µs</b></div><div><b>2023-07-09T08:03:49.981506Z DEBUG ThreadId(56) remove_peer{peer_id="0d76097e-e8fe-45d5-9769-b184bdc30ba8"}: gst_plugin_webrtc_signalling::handlers: new</b></div><div><b>2023-07-09T08:03:49.981537Z  INFO ThreadId(56) remove_peer{peer_id="0d76097e-e8fe-45d5-9769-b184bdc30ba8"}: gst_plugin_webrtc_signalling::handlers: removing peer peer_id=0d76097e-e8fe-45d5-9769-b184bdc30ba8</b></div><div><b>2023-07-09T08:03:49.981551Z DEBUG ThreadId(56) remove_peer{peer_id="0d76097e-e8fe-45d5-9769-b184bdc30ba8"}: gst_plugin_webrtc_signalling::handlers: close time.busy=14.5µs time.idle=33.3µs</b></div></div><div><br></div><div><br></div><div style="font-size: 13px;"><b><i>I wonder if you might be willing to comment on this error and offer a suggestion on what might be causing it ?</i></b></div><div><br></div><div>Also, if anyone else has been able to follow the steps at :</div><div><div style="display: block;"><div style="-webkit-user-select: all; -webkit-user-drag: element; display: inline-block;" class="apple-rich-link" draggable="true" role="link" data-url="https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html?gi-language=c#usage"><a style="border-radius:10px;font-family:-apple-system, Helvetica, Arial, sans-serif;display:block;-webkit-user-select:none;width:300px;user-select:none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;text-decoration:none;" class="lp-rich-link" rel="nofollow" href="https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html?gi-language=c#usage" dir="ltr" role="button" draggable="false" width="300"><table style="table-layout:fixed;border-collapse:collapse;width:300px;background-color:#E5E6E9;font-family:-apple-system, Helvetica, Arial, sans-serif;" class="lp-rich-link-emailBaseTable" cellpadding="0" cellspacing="0" border="0" width="300"><tbody><tr><td vertical-align="center"><table bgcolor="#E5E6E9" cellpadding="0" cellspacing="0" width="300" style="font-family:-apple-system, Helvetica, Arial, sans-serif;table-layout:fixed;background-color:rgba(229, 230, 233, 1);" class="lp-rich-link-captionBar"><tbody><tr><td style="padding:8px 0px 8px 0px;" class="lp-rich-link-captionBar-textStackItem"><div style="max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" class="lp-rich-link-captionBar-textStack"><div style="word-wrap:break-word;font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-topCaption-leading"><a rel="nofollow" href="https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html?gi-language=c#usage" style="text-decoration: none" draggable="false"><font color="#272727" style="color: rgba(0, 0, 0, 0.847059);">rswebrtc</font></a></div><div style="word-wrap:break-word;font-weight:400;font-size:11px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-bottomCaption-leading"><a rel="nofollow" href="https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html?gi-language=c#usage" style="text-decoration: none" draggable="false"><font color="#808080" style="color: rgba(0, 0, 0, 0.498039);">gstreamer.freedesktop.org</font></a></div></div></td><td style="padding:6px 12px 6px 0px;" class="lp-rich-link-captionBar-rightIconItem" width="36"><a rel="nofollow" href="https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html?gi-language=c#usage" draggable="false"><img style="pointer-events:none !important;display:inline-block;width:36px;height:36px;border-radius:3px;" width="36" height="36" draggable="false" class="lp-rich-link-captionBar-rightIcon" alt="favicon.png" src="cid:48E2BA49-F6A3-40FF-A1F3-9272BDD3268D"></a></td></tr></tbody></table></td></tr></tbody></table></a></div></div><br></div><div>could you share your experience ?</div><div><br></div><div><b>Many thanks !!</b></div><div><br><blockquote type="cite"><div>On 4 Jul 2023, at 16:43, Mathieu Duponchelle <mathieu@centricular.com> wrote:</div><br class="Apple-interchange-newline"><div><div>Indeed, those should be absolute URLs (patch welcome), but that doesn't<br>render the rest of the document invalid does it? In particular, the<br>pipelines in the usage section are what you are looking for.<br><br>On Tue, 2023-07-04 at 15:07 +0100, GST Developer via gstreamer-devel<br>wrote:<br><blockquote type="cite">Thanks Mathieu.<br><br>I had been working through the documentation, but the links to the<br>signalling server and the API, from this section of the documentation<br>you linked to,<br>at https://gstreamer.freedesktop.org/documentation/rswebrtc/index.htm<br>l are returning a 404 error.<br><br>rswebrtc<br>(from gst-plugin-webrtc)<br>All-batteries included GStreamer WebRTC producer and consumer, that<br>try their best to do The Right Thing™.<br>It also provides a flexible and all-purposes WebRTC signalling server<br>(gst-webrtc-signalling-server) and a Javascript API (gstwebrtc-api)<br>to produce and consume compatible WebRTC streams from a web browser.<br>also, as referenced later in the documentation.<br>I suspect I will need to build or install this signalling server in<br>order to proceed.<br><br>Many thanks again for your help, which is most appreciated :-)<br><br><br><blockquote type="cite">On 4 Jul 2023, at 13:46, Mathieu Duponchelle<br><mathieu@centricular.com> wrote:<br><br>These pipelines are simply incorrect, why don't you just read the<br>documentation that is provided?<br><br>https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html?gi-language=c#usage<br><br><br>On Tue, 2023-07-04 at 13:37 +0100, GST Developer via gstreamer-<br>devel<br>wrote:<br><blockquote type="cite">Many Thanks Matthieu !!!<br><br>Using ubuntu 22,04LTS, it takes a few quirks, such as not<br>installing<br>meson with apt (since that gets 0.61.2 which causes an error<br>later),<br>instead using <br>pip3 install --user meson==0.62.0<br>and later maybe editing a few files to stop hard coded links to<br>/usr/bin/meson from failing ‘;<br>Perhaps a few other tweaks, sorry I have done so many i dont have<br>a<br>list<br>Then finally adding the path using export GST_PLUGIN_PATH<br><br>Finally, webrtcsink is available in gst-inspect-1.0 !!<br><br>However, I try an example found online: <br>gst-launch-1.0 videotestsrc ! video/x-<br>raw,width=1024,height=768,framerate=30/1 ! timeoverlay ! x264enc<br>!<br>rtph264pay config-interval=1 pt=96 ! webrtcsink<br>and I get an error:<br>WARNING: erroneous pipeline: could not link rtph264pay0 to<br>rswebrtcsink0<br><br>realistically I guess really I want something more like this<br>example<br>I found which seems to have some addressing info : <br>gst-launch-1.0 -v videotestsrc ! video/x-raw,width=640,height=480<br>!<br>x264enc ! rtph264pay ! application/x-rtp,media=video,encoding-<br>name=H264,payload=96 ! rswebrtcsink<br>uri=ws://localhost:8080/stream<br>but this uses something called “rswebrtcsink”….which doesnt<br>exist...<br><br>Ultimately what I would like is to run a gstreamer pipeline which<br>ends in a webrtcsink, so I can connect a browser directly,<br> ideally<br>with the webrtcsink providing the encoding, the signalling,<br>everything needed to get the picture into the browser.   Perhaps<br>I<br>misunderstand the capabilities, but the various data I can find<br>suggests this is possible.<br><br>Could you advise a simple syntax to send a test audio and video<br>stream to a browser using webrtcsink ?<br><br>Many, many thanks for your help.<br><br><br><br><blockquote type="cite">On 4 Jul 2023, at 11:50, Mathieu Duponchelle<br><mathieu@centricular.com> wrote:<br><br>Compiling the webrtc crate after compiling gstreamer from<br>source<br>and<br>entering the uninstalled environment should work, if you<br>encounter<br>issues please file them on gitlab with steps to reproduce.<br><br>As for installing GStreamer with webrtcsink included, I don't<br>know<br>if<br>distributions actually package gst-plugins-rs to be honest :)<br><br>On Mon, 2023-07-03 at 18:25 +0100, GST Developer via gstreamer-<br>devel<br>wrote:<br><blockquote type="cite">Hi Folks.<br><br>I am attempting to use WebRTCSink on Ubuntu 22.04 LTS, but<br>despite 2<br>days trial and error I have yet to find any way to install<br>it.<br><br>I have tried following guidance for installation of all the<br>plug<br>in<br>groups via apt install, and also compiling gstreamer from<br>source,<br>but<br>whilst I can use webrtcbin, none of my attempts have yet<br>found<br>webrtcsink to be available.<br><br>I also went down the root of trying to compile<br>from <br>https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/tree/m<br>ain/net/webrtc<br>but this tends to get hung up on now having the correct<br>version<br>of<br>various gstreamer or other components.<br><br>Is there a simple way to install GStreamer with WebRTCSink<br>included ?<br><br>Many thanks for any clues !<br></blockquote></blockquote><br></blockquote></blockquote><br></blockquote></div></div></blockquote></div><br></div></body></html>