第一類:關鍵幀請求
主要包括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