-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[1.x] Videoroom relays packets from two simulcast substreams #2899
Comments
I guess the |
If it does, I guess we should add a boolean |
Changing the condition to |
I suspect it has something to do with the fact that there's no |
I think the lowest substream is not being sent in your case due to the weird resolution you chose. I see you ask for 768x432, and then use a 2.4 scale-down factor for the lowest substream: if the webcam is exactly that resolution, it should give 320x180 (which to my knowledge is the smallest resolution the browser will accept for simulcast), but if the browser ends up giving you a different resolution that's close to that one, the low substream will have a resolution the browser is not happy with, and it will disable it. As such, it's something that should first of all fixed on the client side. That said, in my tests where I explicitly set |
After a packet capture analysis, it seems that the issue is with the RTP clock of the source (the browser in this case). |
I think that confirms that it's a problem in how the browser sends media under those circumstances, then, not Janus, so I'll close. |
I'll push a commit shortly to address the check I mentioned in the first response, though. |
What version of Janus is this happening on?
1.x, commit
ee313ac2d855dd33a9ebc402386397340c9914c1
In seemingly very particular circumstances, Janus routes packets from two simulcast SSRCs to a single subscriber. When this happens, in
LOG_VERB
the log is spammed withfor several seconds before calming down. During this period, the subscriber receives corrupted video.
The publisher's video sender is configured with three
sendEncodings
, with RIDsh,m,l
in that order, but due to the video resolution being 768x432, and the bitrate constraints set on the room, Chrome seems to be silently disabling the encoding with RIDl
.I briefly looked into the code - when this happens, at this point in the code,
ps->vssrc
contains[0, 1619259369, 2561054186]
. That causes this case to be hit when relaying packets from both SSRCs, causing packets to be unconditionally relayed.A Node project reproducing the problem can be found here. It's a modified version of the repro project for #2775, so the setup should be all the same.
The text was updated successfully, but these errors were encountered: