WebRTC 那些常用的縮略詞以及部分知識雜談

歡迎訪問我其它的博文 https://blog.csdn.net/freeabc

一分鐘快速搭建 rtmpd 服務器: https://blog.csdn.net/freeabc/article/details/102880984

 

WebRTC 那些常用的縮略詞以及部分知識雜談

一、 縮略語

SDP                                 Session Description Protocol 會話描述協議

ICE                                   Interactive Connectivity Establishment 交互式連接建立

JSEP                                JavaScript Session Establishment Protocol

BWE                                 Bandwidth Estimation

SLI                                   Slice Loss Indictor .
                                        The SLI FB messageis identified by PT=PSFB and FMT=2. Slice Loss Indication,爲幀內部分塊損
                                        壞後發送

PLI                                   Picture Loss Indictor 關鍵幀丟包重傳,參考rfc4585
                                        The PLI FB messageis identified by PT=PSFB and FMT=1. Picture Loss Indication,爲整個圖像幀丟
                                         失後發送

FIR                                   Full intra frame request   關鍵幀重傳請求(IDR幀,無需參考幀可解碼)
                                         這裏面Intra的含義可能很多人不知道。Intra的含義是圖像內編碼,不需要其他圖像信息即可解碼
                                         Inter指圖像間編碼,解碼需要參考幀。故Intra Frame其實就是指I幀,Inter Frame指P幀或B幀。

REMB                              Receiver Estimated Maximum Bitrate

WMS                                WebRTC Media Stream

msid                                 Media Stream ID

ccm                                  Codec Control Using RTCP Feedback Message 是支持使用rtcp反饋機制來實現編碼控制

transport-cc                      編碼支持使用rtcp來控制擁塞

NACK                               Negative ACKnowledgement 丟包重傳

REX                                  Retransmission 重傳

RTT                                  Round-Trip Time 網絡往返時間

rtcp-fb                               RTCP Feedback

PSFB                                Payload-Specific FB 消息被定義爲載荷類型爲PSFB的RTCP消息

ALR                                  Application limited region  發送碼率佔最大預算碼率值比例低於某個值的話Alr 會被觸發了,恢復到某
                                        個值以上,Alr會停止。

二、FEC

FEC是發送端在發送報文的時候,將之前的舊包也打包到新包裏面,若接收端有丟包,就用新包裏面冗餘的舊包恢復數據。

webrtc實現該冗餘功能,有三種方式:

1、RED就是RFC2198冗餘。將前面的報文直接打入到新包裏面,在接收端解析主包和冗餘包。

2、ULPFEC,目前webrtc僅將SVC編碼的Level
0視頻幀打包成FEC。其餘層有丟包,就逐步將幀率,保證視頻相對流暢。用到的協議是:RFC5109。

3、FLEXFEC根據接收端反饋回來的丟包信息,總結一些規律,把預判丟失概率比較大的包,冗餘打包出去

 

三、 NACK

NACK也是一種通知技術,只是觸發通知的條件剛好的ACK相反,在未收到消息時,通知發送方“我未收到消息”,即通知未達。

在rfc4585協議中定義可重傳未到達數據的類型有二種:

1)RTPFB:rtp報文丟失重傳。

2)PSFB:指定淨荷重傳,指定淨荷重傳裏面又分如下三種:
1、PLI    (Picture Loss Indication) 視頻幀丟失重傳。
2、SLI    (Slice Loss Indication)    slice丟失重轉。
3、RPSI (Reference Picture Selection Indication)參考幀丟失重傳。

 

四、SETUP

a=setup 主要是表示dtls的協商過程中角色的問題,誰是客戶端,誰是服務器

  • a=setup:actpass 既可以是客戶端,也可以是服務器
  • a=setup:active 客戶端
  • a=setup:passive 服務器

a=sendrecv 主要表示流的傳輸方向

  • a=sendrecv 發送和接收
  • a=sendonly 只能發送
  • a=recvonly  只能接收
  • a=inactive 未激活

 

五、重傳機制解釋

I 、關鍵幀請求

主要包括SLI/PLI/FIR,集中報文手段,目的是在關鍵幀丟失無法解碼時,請求發送方重新生成併發送一個關鍵幀。本質是一種重傳,但是跟傳輸層的重傳的區別是,它重傳是最新生成的幀。

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

FIR 是Full Intra Request,這裏面Intra的含義可能很多人不知道。Intra的含義是圖像內編碼,不需要其他圖像信息即可解碼;Inter指圖像間編碼,解碼需要參考幀。故Intra Frame其實就是指I幀,Inter Frame指P幀或B幀。

那麼爲什麼在PLI和SLI之外還需要一個FIR呢?原因是使用場景不同,FIR更多是在一箇中心化的Video Conference中,新的參與者加入,就需要發送一個FIR,其他的參與者給他發送一個關鍵幀這樣才能解碼,而PLI和SLI的含義更多是在發生丟包或解碼錯誤時使用。

 

II 、重傳請求

主要包括RTX/NACK/RPSI

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

 

III、碼率控制

主要包括REMB/TMMBR/TMMBN

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

REMB是ReceiverEstimatedMax Bitrate,接收端估計的最大碼率。

 

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