I send a stream with 30 fps and the framesDecoded that return consumer.getStats() is inconstant : sometimes : 30 fps, sometimes 15 with an average of 23. (it is not very disturbing but it is noticeable a little).
I’ve tried vp8 and h264 and it’s the same. I did some other test with other values of encoding but it still the same
When I setup my stream with this encodings parameter (without simulcast) :
I don’t have any problem, my fps is 30 all the time.
I also experiment some video freezing with simulcast very randomly, but it happens to all consumer in the same time, I did not notice any particularity in the logs when it’s happening.
I see this issue in github : https://github.com/versatica/mediasoup/issues/394 so I try with the new version, and I have some freeze maybe less often, it’s hard to understand when it is happening.
Thank you for your reply.
I’m going to test the settings on these temporal layers and see if I can influence the fps of the stream. I’ll keep you posted if I find improvements
Thanks for your answer.
Ok, I read some documentation about temporal layers, and I’m starting to understand the mechanisms of fps generation and if i understood correctly i could not receive my stream with 30 fps. (if I’m right we can close topic )
So maybe the solution will be to produce 2 streams with one with low quality and to do the switch on client side with the analyze of consumer.getStats()
No. You don need two streams. Simulcast is already about sending two or three streams. But each streams has 2-3 temporal layers and mediasoup will relay to each consumer the max layers it can send to them based on downlink bandwidth estimation and user preferred layers (set via API in server side Consumer). There is API for that and lot of documentation about that. I cannot explain everything again here.
With this one my fps is between 20 and 30, with an average of 22 (the layerchange is not notified so I stay well all the time on the same layers)
My consumer has a score of 10 all the time.
NOTE: Since M80, Chrome just sends 2 temporal layers (instead of 3 as before) per simulcast stream. In the consumer side, a spatial layer represents a simulcast stream in the sender.