Problem with NDISRC, WHIPSINK, and audio

GST Developer gstreamer at gallery.co.uk
Sat Jul 15 13:14:14 UTC 2023


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 <tarun4690 at gmail.com> 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 <gstreamer at gallery.co.uk> wrote:
>> 
>> 
>> 
>>> On 15 Jul 2023, at 12:36, Tarun Tej K <tarun4690 at gmail.com> 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 <gstreamer at gallery.co.uk> 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, <gstreamer-devel at lists.freedesktop.org> 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 !!!
>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230715/e33b4616/attachment.htm>


More information about the gstreamer-devel mailing list