I wondered whether it is possible to specify the stream quality for a device dynamically.
We have built a platform where you can stream from different kinds of smart glasses to an online portal in which people can follow you along in real-time. The smart glasses can stream in HD or 4k, but the quality seen on the portal is of lesser resolution.
Does anyone have any guidance on this?
Thank you in advance for any answer.
You haven’t provided much detail about how you built this platform, but if you’re using lib-jitsi-meet/jitsi-meet, simulcast is used to send the capture resolution (which defaults to 720p if the camera is capable of it) as well as two lower resolutions simultaneously. In case tx bandwidth is limited, the highest simulcast layer (720p) may not be able to be sent. You can configure that 720p maximum in config.js or in the config that you pass when creating local tracks with lib-jitsi-meet.
The other participants in the conference will receive the highest of the simulcast resolutions that they are capable to receive based on their available bandwidth, or in tile view they will deliberately select a lower resolution to avoid wasting bandwidth since the video is being presented at a smaller size anyway. When using lib-jitsi-meet you can control the maximum received resolution yourself using setReceiverConstraints, but your available rx bandwidth still sets an upper limit.
Thank you for the response @jbg, that is indeed true.
We are building the android smart glasses client using Jitsi Meet.
I see. Is there an alternative way to control the maximum received resolution on the side of participants?
setReceiverConstraints (search for it in the lib-jitsi-meet docs) with the resolutions you want to receive. As long as you have enough bandwidth, and as long as the sender is sending that resolution, you’ll receive the requested resolution.
Thank you @jbg, that is a great reference, we will try it out immediately.