rtcp 關鍵幀請求總結

第一類:關鍵幀請求

主要包括SLI/PLI/FIR,作用是在關鍵幀丟失無法解碼時,請求發送方重新生成併發送一個關鍵幀。

這本質是一種重傳,但是跟傳輸層的重傳的區別是,它重傳是最新生成的幀。

PLI 是Picture Loss Indication,SLI 是Slice Loss Indication。

發送方接收到接收方反饋的PLI或SLI需要重新讓編碼器生成關鍵幀併發送給接收端。

// RFC 4585: Feedback format.
//
// Common packet format:
//
//   0                   1                   2                   3
//   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//  |V=2|P|   FMT   |       PT      |          length               |
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//  |                  SSRC of packet sender                        |
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//  |                  SSRC of media source                         |
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//  :            Feedback Control Information (FCI)                 :
//  :                                                               :

//
// Picture loss indication (PLI) (RFC 4585).
// FCI: no feedback control information.

FIR 是Full Intra Request,這裏面Intra的含義可能很多人不知道。

Intra的含義是圖像內編碼,不需要其他圖像信息即可解碼;Inter指圖像間編碼,解碼需要參考幀。

故Intra Frame其實就是指I幀,Inter Frame指P幀或B幀。

// RFC 4585: Feedback format.
// Common packet format:
//
//   0                   1                   2                   3
//   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//  |V=2|P|   FMT   |       PT      |          length               |
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//  |                  SSRC of packet sender                        |
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//  |             SSRC of media source (unused) = 0                 |
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//  :            Feedback Control Information (FCI)                 :
//  :                                                               :
// Full intra request (FIR) (RFC 5104).
// The Feedback Control Information (FCI) for the Full Intra Request
// consists of one or more FCI entries.
// FCI:
//   0                   1                   2                   3
//   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//  |                              SSRC                             |
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//  | Seq nr.       |    Reserved = 0                               |
//  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

那麼爲什麼在PLI和SLI之外還需要一個FIR呢?

原因是使用場景不同,FIR更多是在一箇中心化的Video Conference中,新的參與者加入,就需要發送一個FIR,其他的參與者給他發送一個關鍵幀這樣才能解碼,

而PLI和SLI的含義更多是在發生丟包或解碼錯誤時使用。

第二類:重傳請求

主要包括RTX/NACK/RPSI

這個重傳跟關鍵幀請求的區別是它可以要求任意幀進行重傳

第三類:碼率控制

主要包括REMB/TMMBR/TMMBN

TMMBR是Temporal Max Media Bitrate Request,表示臨時最大碼率請求。表明接收端當前帶寬受限,告訴發送端控制碼率。

REMB是ReceiverEstimated Max Bitrate,接收端估計的最大碼率。
TMMBN是Temporal Max Media Bitrate Notification


————————————————
版權聲明:本文爲CSDN博主「wangruihit」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wangruihit/article/details/47041515

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