WebRTC extension
Abstract |
WebRTC Extension |
Authors |
Walter Fan |
Status |
WIP as draft |
Category |
LearningNote |
Updated |
2024-08-21 |
Overview
根据 RFC3550 和 RFC8285, 我们可以定义若干 RTP 扩展头, 用于各种不同的用途。
除了一些标准的 RTP header, 比如 audio level , WebRTC 还定义了一些其他的扩展头
abs-send-time
abs-capture-time
color-space
playout-delay
transport-wide-cc-02
video-content-type
video-timing
inband-cn
video-layers-allocation00
refer to https://webrtc.googlesource.com/src/+/refs/heads/main/docs/native-code/rtp-hdrext
audio extension
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
video extension
a=extmap:1 urn:ietf:params:rtp-hdrext:toffset
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 urn:3gpp:video-orientation
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
new extension
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time
Video Layers Allocation
The goal of this extension is for a video sender to provide information about the target bitrate, resolution and frame rate of each scalability layer in order to aid a selective forwarding middlebox to decide which layer to relay.
Name: “Video layers allocation version 0”
Formal name: http://www.webrtc.org/experiments/rtp-hdrext/video-layers-allocation00
Status: This extension is defined here to allow for experimentation.
In a conference scenario, a video from a single sender may be received by several recipients with different downlink bandwidth constraints and UI requirements.
To allow this, a sender can send video with several scalability layers and a middle box can choose a layer to relay for each receiver.
This extension support temporal layers, multiple spatial layers sent on a single rtp stream (SVC), or independent spatial layers sent on multiple rtp streams (simulcast).