Re: Problem with NDISRC, WHIPSINK, and audio
GST Developer via gstreamer-devel <[email protected]>
| Newsgroups | gmane.comp.video.gstreamer.devel |
|---|---|
| Message-ID | <[email protected]> |
Thanks Tarun The Dolby.io <http://dolby.io/> workflow also requires auth-token=“…redacted…." which doesnt appear to be a supported parameter in whipwebrtcsink so perhaps I cant use that in place of whipsink > On 15 Jul 2023, at 13:53, Tarun Tej K <[email protected]> wrote: > >> The same ndisrc / ndisrcdemux works fine into a webrtcsink pipeline with A+V > We now have a whip signaller implementation in the webrtcsink - > https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1168. > But I don't think this is a part of a release yet, so you will have to > set up an uninstalled version. > > On Sat, Jul 15, 2023 at 5:18 PM GST Developer <[email protected]> wrote: >> >> >> >>> On 15 Jul 2023, at 12:36, Tarun Tej K <[email protected]> wrote: >>> >>> Ok. I am not familiar with ndisrcdemux, does this mean the buffers are >>> being dropped at the demuxer? >> >> This also new to me, but its certainly warning that the input buffer is filling, presumably because its not draining. I did try with a much larger receive buffer but it does the same thing, so this does look like some sort of deadlock. >> >> The same ndisrc / ndisrcdemux works fine into a webrtcsink pipeline with A+V, so it looks like some quirk where it doesnt like whipsink in A+V workflow. I can use gst videotestsrc and audiotestsrc into whipsink fine, so I know there is nothing fundamentally wrong with either of the components, ndisrc, ndisrcdemux and whipsink. >> >>> Also what is the GST_DEBUG value set in the environment >> >> in the log, it was *.7 I believe, the TL:DR was *.3 I think. >> >>> and gstreamer >>> version you are using? >> >> 1.20.3 >> >> Thanks ! >> >> >>> >>> On Sat, Jul 15, 2023 at 4:45 PM GST Developer <[email protected]> wrote: >>>> >>>> besides the full log (second one) that i shared, http://www.gallery.co.uk/gstlog2.txt.zip >>>> >>>> TL:DR this appears to be the crux of the issue: >>>> >>>> Pipeline is live and does not need PREROLL ... >>>> 0:00:00.036747546 11562 0x558781cb5400 FIXME default gstutils.c:4025:gst_pad_create_stream_id_internal:<ndisrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id >>>> Pipeline is PREROLLED ... >>>> Setting pipeline to PLAYING ... >>>> New clock: GstSystemClock >>>> Redistribute latency... >>>> Redistribute latency... >>>> Redistribute latency... >>>> 0:00:01.220267971 11562 0x7fe028007330 WARN ndireceiver net/ndi/src/ndisrc/receiver.rs:850:gstndi::ndisrc::receiver::Receiver::receive_thread:<ndisrc0> Dropping old buffer -- queue has 11 items >>>> 0:00:01.232472921 11562 0x7fe028007330 WARN ndireceiver net/ndi/src/ndisrc/receiver.rs:850:gstndi::ndisrc::receiver::Receiver::receive_thread:<ndisrc0> Dropping old buffer -- queue has 11 items >>>> 0:00:01.239202906 11562 0x7fe028007330 WARN ndireceiver net/ndi/src/ndisrc/receiver.rs:850:gstndi::ndisrc::receiver::Receiver::receive_thread:<ndisrc0> Dropping old buffer -- queue has 11 items >>>> >>>> >>>> >>>>> >>>>> >>>>> On Sat, 15 Jul, 2023, 03:30 GST Developer via gstreamer-devel, <[email protected]> wrote: >>>>>> >>>>>> Hi Folks. >>>>>> >>>>>> I am attempting use gstreamer to send content from an NDI Source to a WHIP end point at Dolby.io. >>>>>> >>>>>> If I just send VIDEO, its working fine: >>>>>> >>>>>> gst-launch-1.0 ndisrc ndi-name="NDIPE8 (SIGGEN)" ! ndisrcdemux name=demux demux.video ! queue ! videoconvert ! x264enc ! video/x-h264,format=byte-stream,profile=baseline ! rtph264pay ! 'application/x-rtp,media=video,encoding-name=H264,payload=97,clock-rate=90000' ! whip.sink_0 whipsink name=whip auth-token=“…redacted….." whip-endpoint="https://director.millicast.com/api/whip/myStreamName” >>>>>> >>>>>> This works FINE !! we get the signal to the WHIP server and the end to end latency is about 2 seconds. >>>>>> >>>>>> Now I want to add AUDIO to that pipeline, and I am trying: >>>>>> >>>>>> gst-launch-1.0 ndisrc ndi-name="NDIPE8 (SIGGEN)" ! ndisrcdemux name=demux demux.video ! queue ! videoconvert ! x264enc ! video/x-h264,format=byte-stream,profile=baseline ! rtph264pay ! 'application/x-rtp,media=video,encoding-name=H264,payload=97,clock-rate=90000' ! whip.sink_0 demux.audio ! audioconvert ! opusenc ! rtpopuspay ! 'application/x-rtp,media=audio,encoding-name=OPUS,payload=96,clock-rate=48000,encoding-params=(string)2' ! whip.sink_1 whipsink name=whip auth-token="…redacted….." whip-endpoint="https://director.millicast.com/api/whip/myStreamName” >>>>>> >>>>>> Now, it starts up with: >>>>>> >>>>>> 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… >>>>>> >>>>>> But it stalls right there, and never gets to counting time, and we dont see anything arrive at the WHIP server. >>>>>> >>>>>> Might anyone know what I am doing wrong ? >>>>>> >>>>>> Many thanks !!! >>>>>> >>>>>> >>>>>> >>>>> >>>> >>