Scalable Video Coding (SVC) Extension for WebRTC

關於webrtc 支持的SVC模式

SVC模式彙總,如下:
Scalability Mode Spatial Layers Resolution Ratio Temporal Layers Inter-layer dependency
L1T2 1 2
L1T3 1 3
L2T1 2 2:1 1 Yes
L2T2 2 2:1 2 Yes
L2T3 2 2:1 3 Yes
L3T1 3 2:1 1 Yes
L3T2 3 2:1 2 Yes
L3T3 3 2:1 3 Yes
L2T1h 2 1.5:1 1 Yes
L2T2h 2 1.5:1 2 Yes
L2T3h 2 1.5:1 3 Yes
S2T1 2 2:1 1 No
S2T2 2 2:1 2 No
S2T3 2 2:1 3 No
S2T1h 2 1.5:1 1 No
S2T2h 2 1.5:1 2 No
S2T3h 2 1.5:1 3 No
S3T1 3 2:1 1 No
S3T2 3 2:1 2 No
S3T3 3 2:1 3 No
S3T1h 3 1.5:1 1 No
S3T2h 3 1.5:1 2 No
S3T3h 3 1.5:1 3 No
L3T2_KEY 3 2:1 2 Yes
L3T3_KEY 3 2:1 3 Yes
L4T5_KEY 4 2:1 5 Yes
L4T7_KEY 4 2:1 7 Yes
L3T2_KEY_SHIFT 3 2:1 2 Yes
L3T3_KEY_SHIFT 3 2:1 3 Yes
L4T5_KEY_SHIFT 4 2:1 5 Yes
L4T7_KEY_SHIFT 4 2:1 7 Yes
  • Spatial Layers是基於空間的伸縮,也就是有多個分辨率的layer
  • Temporal Layers是基於時間的伸縮,也就是有多個幀率的layer

webrtc不同編碼器支持的SVC模式

// Capabilities returned by RTCRtpSender.getCapabilities('video').codecs[]
  "codecs": [
    {
      "clockRate": 90000,
      "mimeType": "video/VP8",
      "scalabilityModes": ["L1T2","L1T3"]
    },
    {
      "clockRate": 90000,
      "mimeType": "video/rtx",
      "sdpFmtpLine": "apt=96"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/VP9",
      "scalabilityModes": ["L1T2","L1T3","L2T1","L2T2","L2T3","L3T1","L3T2","L3T3","L1T2h","L1T3h","L2T1h","L2T2h","L2T3h"]
    },
    {
      "clockRate": 90000,
      "mimeType": "video/rtx",
      "sdpFmtpLine": "apt=98"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/H264",
      "sdpFmtpLine": "packetization-mode=1;profile-level-id=42001f;level-asymmetry-allowed=1"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/rtx",
      "sdpFmtpLine": "apt=100"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/H264",
      "sdpFmtpLine": "packetization-mode=0;profile-level-id=42001f;level-asymmetry-allowed=1"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/rtx",
      "sdpFmtpLine": "apt=102"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/H264",
      "sdpFmtpLine": "level-asymmetry-allowed=1;profile-level-id=42e01f;packetization-mode=1"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/rtx",
      "sdpFmtpLine": "apt=104"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/H264",
      "sdpFmtpLine": "level-asymmetry-allowed=1;profile-level-id=42e01f;packetization-mode=0"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/rtx",
      "sdpFmtpLine": "apt=106"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/H264",
      "sdpFmtpLine": "level-asymmetry-allowed=1;profile-level-id=4d0032;packetization-mode=1"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/rtx",
      "sdpFmtpLine": "apt=108"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/H264",
      "sdpFmtpLine": "level-asymmetry-allowed=1;profile-level-id=640032;packetization-mode=1"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/rtx",
      "sdpFmtpLine": "apt=110"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/red"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/rtx",
      "sdpFmtpLine": "apt=112"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/ulpfec"
    },
    {
      "clockRate": 90000,
      "mimeType": "video/AV1",
      "scalabilityModes": ["L1T2","L1T3","L2T1","L2T2","L2T3","L3T1","L3T2","L3T3","L1T2h","L1T3h","L2T1h","L2T2h","L2T3h","S2T1","S2T2","S2T3","S3T1","S3T2","S3T3","S2T1h","S2T2h","S2T3h","S3T1h","S3T2h","S3T3h"]
    },
    {
      "clockRate": 90000,
      "mimeType": "video/rtx",
      "sdpFmtpLine": "apt=113"
    }
]
  • 需要注意低版本的webrtc的vp8編碼是通過創建多個編碼器來實現多個分辨率的layer

參考:https://www.w3.org/TR/webrtc-svc/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章