Support simulcast for svc codecs (vp9/av1) - #2083
Conversation
🦋 Changeset detectedLatest commit: ed705d7 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
size-limit report 📦
|
1egoman
left a comment
There was a problem hiding this comment.
High level makes sense to me, but I'm probably not the best person to give a lower level review and defer to @xianshijing-lk or @lukasIO
| /** | ||
| * VP9 and AV1 are published as SVC (a single RTP stream carrying every spatial layer) | ||
| * by default. They can instead be published as real, rid based simulcast — one | ||
| * independent stream per rid, each carrying a single spatial layer — when the caller | ||
| * opts in with `simulcast: true` and a single spatial layer scalability mode (`L1Tx`). | ||
| * | ||
| * The SFU has to be told about this: without an explicit | ||
| * `SimulcastCodec.videoLayerMode` it assumes `MULTIPLE_SPATIAL_LAYERS_PER_STREAM` for | ||
| * any SVC capable codec. | ||
| */ |
There was a problem hiding this comment.
suggestion: It might be worth adding some of this context to a user facing docstring in RoomConnectOptions (and eventually docs.livekit.io). As is I don't think it is very discoverable.
Also maybe worth considering as well - some sort of debug log that prints when isSVCSimulcast(...) is true in the connection path, to be able to confirm it is enabled properly.
There was a problem hiding this comment.
Have added a comment to TrackPublishDefaults.The doc will be generated from it.
Conditions to enable:
ScalabilityMode: L1txandsimulcast: True