MediaStream IDs with webrtcbin

Matthew Waters ystreet00 at gmail.com
Tue Sep 7 10:31:59 UTC 2021


mid's are only set as part of SDP negotiation.  From memory, they won't 
have a valid value until SDP negotiation completes.

'on-new-transceiver' may have already been called by the request of any 
sink pads on webrtcbin.  If you're creating webrtcbin within gst-launch 
strings, the request of the webrtcbin sink pad would occur before you 
have a chance to add your 'on-new-transceiver' signal callback.

Cheers
-Matt

On 7/9/21 7:41 pm, Florian Echtler wrote:
> Thanks, Matt - I've tried to call get-transceivers and that gives me 3 
> transceiver objects as expected (2 video, 1 audio), but the mid 
> property of all of them is always empty (None in Python).
>
> I'm currently calling get-transceivers after on-negotiation-created, 
> but that seems to be the wrong point in time?
>
> Also, I initially tried to register for on-new-transceiver, but that 
> never seems to get called at all...
>
> What am I missing here?
>
> Thanks and best, Florian
>
> On 07/09/2021 05:28, Matthew Waters wrote:
>> MediaStreamId's are not really supported by webrtcbin at all 
>> currently. They are only there to make RTX work as required by browsers.
>>
>> Also, putting ssrc's into SDP is something that's going away with the 
>> use of simulcast and mid/rid header extensions so I'm not entirely 
>> sure on the usefulness of a=ssrc msid:$val going forward in that 
>> respect.
>>
>> How we usually advise to match up streams on both sides is via 'mid' 
>> which is both in the SDP and exposed through the transceivers on both 
>> ends.
>>
>> Cheers
>> -Matt
>>
>> On 6/9/21 5:59 pm, Florian Echtler via gstreamer-devel wrote:
>>> Hello everyone,
>>>
>>> there's a SO discussion on how to properly label multiple video 
>>> streams in a WebRTC bundle: https://stackoverflow.com/a/65412097/838719
>>>
>>> The conclusion is to add a mapping from MediaStreamIDs to "readable" 
>>> names, but how would I go about this with webrtcbin?
>>>
>>> AFAICT the only connection between the gstreamer pipeline and the 
>>> resulting SDP offer is through the payload ID:
>>>
>>> m=video 9 UDP/TLS/RTP/SAVPF 96
>>> [...]
>>> a=ssrc:647810976 msid:user3145526253 at host-b7e78eb1 webrtctransceiver0
>>> a=ssrc:647810976 cname:user3145526253 at host-b7e78eb1
>>> a=mid:video0
>>>
>>> Is there any way I can set either mid or msid from outside, or do I 
>>> have to parse the SDP for this to figure out how payload ID and 
>>> mid/msid match?
>>>
>>> Best, Florian
>>
>>
>
>


-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210907/e7e6390f/attachment.sig>


More information about the gstreamer-devel mailing list