Problem with whipwebrtcsink uplink to Dolby.io, was Problem with NDISRC, WHIPSINK, and audio
Sanchayan Maity
sanchayan at sanchayanmaity.net
Tue Aug 8 04:10:17 UTC 2023
Hello,
On 23-08-07 19:26:56, GST Developer via gstreamer-devel wrote:
> Hello Tarun
>
> I have rebuilt gstreamer and tested again with Dolby.io <http://dolby.io/>
>
> This its failing on a different tack.
>
> gst-launch-1.0 ndisrc ndi-name="PRIMARY (SIGGEN)" ! ndisrcdemux name=demux demux.video ! queue ! videoconvert ! whipwebrtcsink name=ws signaller::whip-endpoint="https://director.millicast.com/api/whip/myStreamName",auth-token='..redacted..' demux.audio ! queue ! audioconvert ! ws.
We have tested the below pipeline with Dolby.
gst-launch-1.0 videotestsrc pattern=ball ! queue ! videoconvert ! queue ! vp8enc deadline=1 ! video/x-vp8 ! queue ! whipwebrtcsink name=ws signaller::whip-endpoint="https://director.millicast.com/api/whip/streamName" signaller::auth-token="auth-token" audiotestsrc wave=ticks ! queue ! opusenc ! audio/x-opus ! queue ! ws.
Note the specification of authentication token in the pipeline.
>
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Pipeline is PREROLLED ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> Redistribute latency...
> Redistribute latency...
> Redistribute latency...
> ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: GStreamer encountered a general stream error.
> Additional debug info:
> net/webrtc/src/webrtcsink/imp.rs(1499): gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::connect_signaller::{{closure}}::{{closure}} (): /GstPipeline:pipeline0/GstWhipWebRTCSink:ws:
> Signalling error: Error: Unexpected response: 401 - Unauthorized
> Execution ended after 0:00:02.364739232
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> I have confirmed the same authentication token works fine with the older whipsink method, so if authentication is failing, it's not simply due to a bad token.
>
> Please let me know your thoughts ?
>
> Are you able to test with dolby.io <http://dolby.io/> ? they have a free account mechanism for this sort of testing.
>
> Many thanks for your help.
>
>
>
> > On 5 Aug 2023, at 05:24, Tarun Tej K <tarun4690 at gmail.com> wrote:
> >
> > Hello,
> >
> > The fix for this issue is now merged upstream. Here is the MR - https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1290
> >
> >
> > On Sat, 29 Jul, 2023, 19:25 Tarun Tej K, <tarun4690 at gmail.com <mailto:tarun4690 at gmail.com>> wrote:
> >> Hi,
> >>
> >> Thanks for trying this out.
> >>
> >> We discovered a bug with whipwebrtcsink (and whipsink) that got exposed because of one of the recent changes.
> >>
> >> More information about this issue is captured here - https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/394 to track this bug.
> >>
> >>
> >> On Sat, 29 Jul, 2023, 18:33 GST Developer, <gstreamer at gallery.co.uk <mailto:gstreamer at gallery.co.uk>> wrote:
> >>> Hi Tarun
> >>>
> >>> We have finally got things up and running with GStreamer 1.22 as you advised, and indeed the 'request-aux-sender' issue has gone away.
> >>>
> >>> Now we have a different issue, which might be some specific compatibility with Dolby.io <http://dolby.io/> (formerly millicast).
> >>>
> >>> Here is what we get - the pipeline runs for a few seconds before failing:
> >>>
> >>>
> >>> gst-launch-1.0 ndisrc ndi-name="PRIMARY (SIGGEN)" ! ndisrcdemux name=demux demux.video ! queue ! videoconvert ! whipwebrtcsink name=ws signaller::whip-endpoint="https://director.millicast.com/api/whip/myStreamName",auth-token="......redacted......" demux.audio ! queue ! audioconvert ! ws.
> >>> Setting pipeline to PAUSED ...
> >>> Pipeline is live and does not need PREROLL ...
> >>> Pipeline is PREROLLED ...
> >>> Setting pipeline to PLAYING ...
> >>> New clock: GstSystemClock
> >>> Redistribute latency...
> >>> Redistribute latency...
> >>> Redistribute latency...
> >>>
> >>> ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: GStreamer encountered a general stream error.
> >>> Additional debug info:
> >>> net/webrtc/src/webrtcsink/imp.rs <http://imp.rs/>(1493): gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::connect_signaller::{{closure}}::{{closure}} (): /GstPipeline:pipeline0/GstWhipWebRTCSink:ws:
> >>> Signalling error: Error: Error None (Some("Old Canceller should not exist")) at net/webrtc/src/utils.rs:131 <http://utils.rs:131/>
> >>>
> >>> Execution ended after 0:00:02.911160133
> >>> Setting pipeline to NULL ...
> >>> Freeing pipeline ...
> >>>
> >>>
> >>> Any ideas ?
> >>>
> >>> Many thanks !
> >>>
> >>>
> >>>
> >>>> On 15 Jul 2023, at 15:44, Tarun Tej K <tarun4690 at gmail.com <mailto:tarun4690 at gmail.com>> wrote:
> >>>>
> >>>> Ok, you will need Gstreamer version 1.22 for this, where webrtcbin has this signal 'request-aux-sender' implemented.
> >>>>
> >>>
> >>>
> >>>> On Sat, 15 Jul, 2023, 19:53 GST Developer, <gstreamer at gallery.co.uk <mailto:gstreamer at gallery.co.uk>> wrote:
> >>>>> Thanks Tarun,
> >>>>>
> >>>>> we are making progress - this pipeline does startup, but it fails after a few seconds:
> >>>>>
> >>>>> gst-launch-1.0 ndisrc ndi-name="NDIPE8 (SIGGEN)" ! ndisrcdemux name=demux demux.video ! queue ! videoconvert ! whipwebrtcsink name=ws signaller::whip-endpoint="https://director.millicast.com/api/whip/myStreamName",auth-token=“..redacted.." demux.audio ! queue ! audioconvert ! ws.
> >>>>>
> >>>>> Setting pipeline to PAUSED ...
> >>>>> Pipeline is live and does not need PREROLL ...
> >>>>> Pipeline is PREROLLED ...
> >>>>> Setting pipeline to PLAYING ...
> >>>>> New clock: GstSystemClock
> >>>>> Redistribute latency...
> >>>>> Redistribute latency...
> >>>>> Redistribute latency…
> >>>>>
> >>>>> <it runs fine here for a few seconds with the numbers running>
> >>>>>
> >>>>> thread 'tokio-runtime-worker' panicked at 'Signal 'request-aux-sender' of type 'GstWebRTCBin' not found', /home/ubuntu/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/44c4ab3/glib/src/object.rs:2642:32
> >>>>> note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
> >>>>> thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: PoisonError { .. }', net/webrtc/src/webrtcsink/imp.rs:3013:47
> >>>>> ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: Panicked: called `Result::unwrap()` on an `Err` value: PoisonError { .. }
> >>>>> thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: PoisonError { .. }', net/webrtc/src/webrtcsink/imp.rs:3013Execution ended after 0:00:01.886767934
> >>>>> :47Setting pipeline to NULL ...
> >>>>>
> >>>>> ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: Panicked
> >>>>> ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: Panicked
> >>>>> ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: Panicked: called `Result::unwrap()` on an `Err` value: PoisonError { .. }
> >>>>> ERROR: from element /GstPipeline:pipeline0/GstWhipWebRTCSink:ws: Panicked
> >>>>> Freeing pipeline …
> >>>>>
> >>>>>
> >>>
>
>
>
>
--
Regards,
Sanchayan.
More information about the gstreamer-devel
mailing list