Video那些事--缩略词大全
QP: Quantization Parameter
CBP: Constrained Baseline Profile
CHP: Constrained High Profile
PLI: Picture Loss Indication
FIR: Full Intra Request
RTC Real-Time Communication
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 网络往返时间
FEC Forward Error/Erasure Correction 前向纠错
ARQ Automatic Repeat reQuest 丢包重传
ABC Adaptive Bit-rate Control 码率自适应
PLC Packet Lost Concealment 错误隐藏
rtcp-fb RTCP Feedback
PSFB Payload-Specific FB 消息被定义为载荷类型为PSFB的RTCP消息
ALR Application limited region 发送码率占最大预算码率值比例低于某个值的话Alr 会被触发了,恢复到某
个值以上,Alr会停止。
SVC Scalable Video Coding 通过改变一个GOP内帧的线性参考关系。防止网络丢包对视频传输造成的影响
AVP audio video profile
AVPF audio video profile feedback
SAVPF safe audio video profile feedback
SCTP Stream Control Transmission Protocol:流控制传输协议。而对于自定义应用数据的传输,WebRTC中使用了SCTP协议
TX Transmission 发送
RX Reception 接收
其中的 X 代表什么?这是个在美国人中间也是云里雾里找不着北的问题,从未见过有什么“正确”答案。最能让人接受一个解释是,那个 x 指代 crossing(跨越)。电讯传播当然要“跨越”。
这种解释在美国城市街道、马路上可以得到印证。人行横道用的就是 Xing,这个Xing要读成 crossing,用 X 来表示不仅音似,而且形似。但在 crossing 这个词中并没有 x 这个字母。
也有一种说法就是为了方便,例如Christmas可缩写为X'mas , X 就是个让它们好读好写好(接)受一点的添头。落衫姬国际机场使用代码 LAX,在剧院,「灯……等灯等灯」也叫 LX
(例:PVC 电工胶带也叫 LX 胶带)吉蛤比特以太网的单膜光纤,使用 1000Base-LX 标准(此处 L 代表「长距」)
RTX Re-Transmission
二、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,接收端估计的最大码率。