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会停止。

SVC                                 Scalable Video Coding  通过改变一个GOP内帧的线性参考关系。防止网络丢包对视频传输造成的影响

二、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,接收端估计的最大码率。

猜你喜欢

转载自blog.csdn.net/freeabc/article/details/106711632