RID
Also written a=rid, restriction identifier, RtpStreamId
A short label that names one RTP stream inside a media section, so simulcast layers can be told apart and constrained individually.
SSRCs are random 32-bit numbers that can change without warning, which makes them a poor way to say “the low quality layer”. A RID is a stable name you choose, declared in SDP as a=rid:lo send and carried on every packet in an RTP header extension.
RFC 8851 defines the SDP side, including the restrictions you can attach to a RID such as max-width and max-fps. RFC 8852 defines how the label travels with the RTP stream itself, so a receiver can bind packets to the declaration without waiting for signalling.
For simulcast this is the whole addressing scheme. a=simulcast:send lo;mid;hi names three RIDs, and a forwarding server decides per viewer which of the three to relay. In the browser the RID is the rid field of each entry in sendEncodings.
Specs
Read more
- Stop munging SDP: the WebRTC APIs that replace itEditing SDP before setLocalDescription breaks the WebRTC spec and still works in every browser. The API that replaces each munge, and the one case with none.
- WebRTC E2EE with SFrame: what your SFU can still readSFrame hides WebRTC media from the SFU, not the metadata. Your server still sees who spoke, when and how loudly, from the audio level header extension.