This message was deleted.
# helpdesk
s
This message was deleted.
g
Hi Shaan, 1. There are no limits enforced by default, but if you’re running LiveKit Server, you can set some limits by node: https://github.com/livekit/livekit/blob/master/config-sample.yaml#L214 2. We have some benchmarks showing at what point CPU usage becomes saturated by number of publishers/subscribers in a single room: https://docs.livekit.io/oss/benchmark/
l
this is great thanks!
🙌 1
g
p
to add to this from the client perspective (what @great-umbrella-58130 mentioned are primarily server side limits/config options): The point at which your clients’ browsers will start struggling with both video decoding and 3d rendering highly depends on the capabilities of each client’s machine. A great way to mitigate the need for doing a lot of video encoding is to use livekit’s dynacast feature and for decoding, in case you have 100 people in your room, but only a fraction of those are actually visible in your scene, you can selectively subscribe to the tracks you are interested in and unsubscribe from the other ones.
l
this is helpful
would come back here for more guidance
Hi @polite-kilobyte-67570 Thanks for the guidance above I am not trying to implement the Selective Subscription feature. Implementing it on the client side is straightforward because each
Participant
has information about the
RemoteParticipant
via
MovePackets
so I can computer distance to each
RemoteParticipant
and only subscribe to
RemoteTracks
corresponding to ones nearby I was thinking how a similar solution would work on the server side. Is there a way for me to store
curr_location
in `ParticipantInfo so as to compute which tracks each participant should subscribe / un-subscribe to?
p
for server side you could use participant metadata for something like this https://docs.livekit.io/server-sdk-js/classes/RoomServiceClient.html#updateParticipant
l
beautiful so this is what i am thinking LocalClient writes its position using
updateParticipant
in the metadata property and the server runs the business logic on loop