Firefox simulcast current status

316 views
Skip to first unread message

David Erenger

unread,
Feb 4, 2021, 9:33:15 AM2/4/21
to meetecho-janus
Hi,

I´m not able to get simulcast to work in Firefox anymore (Firefox 85).

It is not working on the simulcast demo page nor on my setup using the latest multistream branch.

What happens is that only one layer is available, layer 0 but it contains the highest quality stream.

If I change scaleDownBy for the 'h' stream it affects the stream that comes over as layer 0.

This is the offer:

v=0
o=mozilla...THIS_IS_SDPARTA-85.0 8574740104654817562 0 IN IP4 0.0.0.0
s=-
t=0 0
a=fingerprint:sha-25654:3E:6A:4E:41:EE:14:7D:77:3E:3D:5C:09:16:0D:C7:F4:79:35:EE:F5:51:8A:81:40:3C:48:CB:95:50:EA:2A
a=group:BUNDLE 0
a=ice-options:trickle
a=msid-semantic:WMS *
m=video 9 UDP/TLS/RTP/SAVPF 120 124 121 125 126 127 97 98
c=IN IP4 0.0.0.0
a=sendonly
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:5 urn:ietf:params:rtp-hdrext:toffset
a=extmap:8/sendonly urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:9/sendonly urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1
a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1
a=fmtp:120 max-fs=12288;max-fr=60
a=fmtp:124 apt=120
a=fmtp:121 max-fs=12288;max-fr=60
a=fmtp:125 apt=121
a=fmtp:127 apt=126
a=fmtp:98 apt=97
a=ice-pwd:a7e50c0b6cee558e83f865b1fe6aa305
a=ice-ufrag:3ff44f98
a=mid:0
a=msid:{e550529c-f462-4f87-9305-0e6ee98fa6c6} {9481f3c4-7674-4429-939b-ca9eafc5af73}
a=rid:h send
a=rid:m send
a=rid:l send
a=rtcp-fb:120 nack
a=rtcp-fb:120 nack pli
a=rtcp-fb:120 ccm fir
a=rtcp-fb:120 goog-remb
a=rtcp-fb:120 transport-cc
a=rtcp-fb:121 nack
a=rtcp-fb:121 nack pli
a=rtcp-fb:121 ccm fir
a=rtcp-fb:121 goog-remb
a=rtcp-fb:121 transport-cc
a=rtcp-fb:126 nack
a=rtcp-fb:126 nack pli
a=rtcp-fb:126 ccm fir
a=rtcp-fb:126 goog-remb
a=rtcp-fb:126 transport-cc
a=rtcp-fb:97 nack
a=rtcp-fb:97 nack pli
a=rtcp-fb:97 ccm fir
a=rtcp-fb:97 goog-remb
a=rtcp-fb:97 transport-cc
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:120 VP8/90000
a=rtpmap:124 rtx/90000
a=rtpmap:121 VP9/90000
a=rtpmap:125 rtx/90000
a=rtpmap:126 H264/90000
a=rtpmap:127 rtx/90000
a=rtpmap:97 H264/90000
a=rtpmap:98 rtx/90000
a=setup:actpass
a=simulcast:send h;m;l
a=ssrc:145801862 cname:{1e7ea314-9ccb-46e1-8fb4-b44da9b0b3f9}
a=ssrc:768527164 cname:{1e7ea314-9ccb-46e1-8fb4-b44da9b0b3f9}
a=ssrc:1188813736 cname:{1e7ea314-9ccb-46e1-8fb4-b44da9b0b3f9}
a=ssrc:2099783702 cname:{1e7ea314-9ccb-46e1-8fb4-b44da9b0b3f9}
a=ssrc:2000899815 cname:{1e7ea314-9ccb-46e1-8fb4-b44da9b0b3f9}
a=ssrc:2762046239 cname:{1e7ea314-9ccb-46e1-8fb4-b44da9b0b3f9}
a=ssrc-group:FID 145801862 768527164
a=ssrc-group:FID 1188813736 2099783702
a=ssrc-group:FID 2000899815 2762046239


Is this supposed to work now or is it a known problem?

Testing simulcast here: https://fippo.github.io/simulcast-playground/firefox works but there they are doing some sdp mudging that is not done in janus.js. Something that needs to be added?

Regards,
David

David Erenger

unread,
Feb 4, 2021, 9:40:21 AM2/4/21
to meetecho-janus
I tried to reverse the encodings array, changing rid names to 'hi', 'mid', 'lo' and so on without any difference.

Mirko Brankovic

unread,
Feb 4, 2021, 10:09:16 AM2/4/21
to meetecho-janus
did you use ?simulcast2=true get param for demo ?

--
You received this message because you are subscribed to the Google Groups "meetecho-janus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meetecho-janu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/meetecho-janus/90386962-40ea-4f1a-9295-e0f69efa2ccfn%40googlegroups.com.


--
Regards,
Mirko

David Erenger

unread,
Feb 4, 2021, 10:16:21 AM2/4/21
to meetecho-janus
Tried them all

With simulcast=true I get this result.
With simulcast2=true I see no simulcast buttons at all
With simulcast=true&simulcast2=true I see the same result, only one layer

David Erenger

unread,
Feb 4, 2021, 10:19:23 AM2/4/21
to meetecho-janus
I tried with some different cameras and resolution to rule out that it is something with that, Chrome rid-based simulcast is not working if stream resolution is below 720p (but sdp mudging works still). But same with all I tested.

Lorenzo Miniero

unread,
Feb 4, 2021, 1:02:50 PM2/4/21
to meetecho-janus
Il giorno giovedì 4 febbraio 2021 alle 16:19:23 UTC+1 david....@briteback.com ha scritto:
I tried with some different cameras and resolution to rule out that it is something with that, Chrome rid-based simulcast is not working if stream resolution is below 720p (but sdp mudging works still). But same with all I tested.



That's normal: scaledownby4 for the low quality stream would be less than 180, which Chrome would reject.

L.

David Erenger

unread,
Feb 10, 2021, 10:47:43 AM2/10/21
to meetecho-janus
So I have investigated this a little more. I see different behavior when using h264 compared to vp8.

With H264 I see the above behavior with VP8 The stream starts for about 2-5 second then freezes and then disappears. 

David Erenger

unread,
Feb 23, 2021, 10:13:47 AM2/23/21
to meetecho-janus
Ok if anyone is interested I now know how to make it work properly.

First, Simulcast is not supported for H264 in Firefox just yet.
When using vp8 and providing a 720p video it will not handle to scale it down with 4. So this: 
 
{ rid: "h", active: true },
{ rid: "m", active: true, maxBitrate: 300000, scaleResolutionDownBy: 2 },
{ rid: "l", active: true, maxBitrate: 150000, scaleResolutionDownBy: 4 },

Will not work, it will result i a lot of:
SSRC changed, 842003277 --> 3743272486

Logged in Janus.

It works with only two rids (l and m) or 3 like so:

{ rid: "h", active: true },
{ rid: "m", active: true, maxBitrate: 300000, scaleResolutionDownBy: 2 },
{ rid: "l", active: true, maxBitrate: 150000, scaleResolutionDownBy: 2 },

This behavior is simular to Chromes rid-based simulcast only that the threshold in Chrome seems to be 720p for allowing scaleResolutionDownBy: 4
Reply all
Reply to author
Forward
0 new messages