webrtcbin only receives single track from browser

Soebirk, Thorsten Nordholm Thorsten.Sobirk at itelligence.dk
Thu Apr 30 11:10:11 UTC 2020


Thanks Matthew. This is definitely a needed correction. I am currently working around this issue by suppressing any ICE candidates that are produced before the answer, which seems to work ok.

I don't think it directly affects my current issue though. 

/ Thorsten

From: Matthew Waters [mailto:ystreet00 at gmail.com] 
Sent: 30 April 2020 12:40
To: Soebirk, Thorsten Nordholm
Subject: Re: webrtcbin only receives single track from browser

Hi,

This sounds like something I just discovered and fixed in https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1226

That fix only applies in the following situation:
1. Browser is offering, GStreamer is answering
2. Browser is advertising BUNDLE (the default on all major browsers now), GStreamer is not using BUNDLE at all (bundle-policy=none)
3. More than one stream is being transported.
3. The send or receive state of each individual stream is irrelevant.

Cheers
-Matt

On 30/4/20 7:34 pm, Soebirk, Thorsten Nordholm wrote:
I am working on an application that should receive both audio and video from a browser using webrtcbin. My application is modelled on WebrtcSendRecv.java (https://github.com/centricular/gstwebrtc-demos/blob/master/sendrecv/gst-java/src/main/java/WebrtcSendRecv.java), except that it is receive-only and it works in passive mode (receives a call by waiting for an offer, rather than making a call by sending an offer).
 
Things work fine, as long as the browser sends only an audio track or only a video track. But when the browser sends both audio and video, my application receives only one of the tracks. Which track the application "sees" depends on the order they are added by the browser, i.e. the order of RTCPeerConnection.addTrack(.) calls. The first track added by the browser is the track my application receives. Only one callback to onIncomingStream() and onIncomingDecodebinStream() are received.
 
I can see in the browser (chrome://webrtc-internals/) that it is streaming both audio and video, and I have had essentially the same browser application working with a different server implementation (Python aiortc), so I am 99% certain that the browser JS is working correctly.
 
My assumption is that I am missing something in my code, but I haven't been able to figure out what. Hope someone can offer some advice.
 
I am using GStreamer 1.16.2.
 
/ Thorsten


_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list