When calling addTransceiver() with a video track, pass encodings: [{ scalabilityMode: 'L1T3' }] for temporal-only scalability (one spatial layer, three temporal layers), or 'L3T3' for three spatial and three temporal layers.
Verify the browser supports the chosen scalability mode by calling RTCRtpSender.getCapabilities('video') and checking the scalabilityModes array on each codec entry; VP9 is the codec most broadly supporting spatial SVC in browsers.
On the SFU, consume the VP9 stream and use the dependency descriptor RTP header extension (or VP9 payload descriptor) to identify spatial and temporal layer boundaries and forward only the requested layers to each subscriber.
To switch a subscriber to a lower spatial layer, instruct the SFU to request a key-frame for the target layer via a RTCP PLI or Full Intra Request (FIR), then forward only packets belonging to that layer and below.
Monitor the sender's actual scalability via RTCRtpSender.getStats(): check the 'outbound-rtp' entries and their rid / scalability-related fields to confirm layers are being sent.
If the browser reverts to L1T1 despite your configuration, the negotiated codec parameters may not have included the scalability profile; ensure your SFU answers with VP9 and does not strip the scalabilityMode from the offer.
Known gotchas
Chrome supports VP9 SVC (L1T3, L3T3, etc.) in WebRTC but H.264 and VP8 do not support spatial SVC — they support only temporal scalability modes (L1T2, L1T3).
The W3C WebRTC SVC spec defines scalabilityMode strings but browser implementations vary; test the actual received streams with a packet analyzer rather than trusting the API alone.
SFUs that do not parse VP9 payload descriptors will forward all layers unconditionally, negating the bandwidth savings of SVC — confirm your SFU has explicit VP9 SVC support before relying on this feature.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp