首页 > 编程知识 正文

ddwrt设置教程,webrtc开源项目

时间:2023-05-05 21:17:17 阅读:153512 作者:3898

另一方面,概念与NACK相对应的是ACK,ACK是到达通知技术。 以TCP为例,这是因为他在接收方收到数据后,会向发送方回复“收到了数据”的信息(ACK ),告诉发送方“收到了”,以确保信息的可靠性。

NACK也是一种通知技术,但触发通知的条件正好与ACK相反,即在没有收到消息时通知发送方“我没有收到消息”,即未达到的通知。

有两种类型的数据定义可以通过rfc4585协议重新发送:

1 ) RTPFB:rtp报文丢失重发。

2 ) PSFB )指定净荷载传递,净荷载传递中分为以下三种

1 .图片丢失视频帧的重传。

2、sli(slicelossindication ) slice丢失并再次旋转。

3、rpsi (参考图片选择)参考帧被丢失并被重新发送。

创建视频连接的SDP协议将协商上述类型的NACK重定向。 以webrtc为例,协商两种NACK。 rtp消息丢包重传的NACK(nack之后是无参数、默认RTPFB )、PLI视频帧丢失重传的nack )。

二.定义

V: 2bit现在固定为2

p:1位绘制

fmt:5b it feedback消息类型。 在RTP FP模式下定义的值如下:

0:未使用

1:通用网络

2-30:unassigned

3: reservedforfutureexpansionoftheidentifiernumberspace

PS FP模式下的定义值如下。

0:未使用

1:图片丢失识别(pli )

2:许可证(sli )。

3:参考图片选择(rpsi )

4-14:未使用

15:应用程序层(AFB )消息

16-30: unassigned

3: reservedforfutureexpansionofthesequencenumberspace

pt : 8位布局类型。

FCI :较长的反馈控制信息。 1、RTPFB

packetidentifier(PID )是丢失的RTP分组的序列号,bitmapoflostpackets (BLP )根据PID表示以下16个RTP分组的丢失状况。 一个NACK消息可携带多个RTP序号,NACK接收方逐个处理这些序号。 以下示例:

数据包标识符(PID )为176。

bitmapoflostpackets(BLP ):0x6ae1。 分析时需要以小模式进行分析。

0x6ae1支持二进制。 110101011100001相反看1000 0111 0101 0110。

1bit表示丢包,0bit表示没有丢包分析,丢失的信息序列号分别如下。

177 182 183 184 186 188 190 191与wireshark分析一致。

2、PSFB 1) PLI FB PT=PSFB FMT=1。

2 ) SLI FB的PT=PSFB,FMT=2。

first 336013位图块(MB )地址块。

number :13 bitsthenumberoflostmacroblocks,in scan order as discussed above。

picture id :6 bitsthesixleastsignificantbitsofthecodec-specifierthatisusedtoreferencethepictureinwhichthelosssofthe or many视频代码,thepictureidisidenticaltothetemporalreference。

3 ) RPSI FB的PT=PSFB,FMT=3。

三、实现webrtc支持RTPFB和PLI FB两种重传方式。

在assignpayloadtypesandaddassociatedrtxcodecs-addefaultfeedbackparams中,将这两种方法记入SDP命令行。

1 ) RTPFB的实现RTPFB在JB中实现。 根据RTP消息的序列号和时间戳,判断有无丢包异常。 请参见实现NackTracker类。

发送方调用堆栈的引用位置为:

平台标题:开始标题

-平台前端:运行

- processthreadimpl : run

- processthreadimpl :3360 process

- paced sender :进程

- paced sender :3360 send packet

- packet router :3360 time to send packet

- modulertprtcpimpl :3360 time to send packet

- RTP sender :3360时间to send packet

- rtppackethistory :3360 getpacketandsetsendtime

- rtppackethistory : get packet

接收方有两种方式的驱动方式NACK

1、包装驱动

设备包

-DeliverRtp

- rtpstreamreceivercontroller :3360 onrtppacket

- RTP demuxer :3360 onrtppacket

- rtpvideostreamreceiver : onrtppacket

- rtpvideostreamreceiver :接收包

- rtpreceiverimpl :3360 incomingrtppacket

- rtpreceivervideo :3360 parsertppacket

- rtpvideostreamreceiver 3360: onreceivedpayloaddata

- nack module :3360 onreceivedpacket

- videoreceivestream : send nack

- rtpvideostreamreceiver 33603360 requestpacketretransmit

- modulertprtcpimpl :3360 send nack

2、定时驱动

nack module :进程

2 ) PLI FB实现PLI FB在webrtc中实现的是请求关键帧。 如果连续解码失败或长期没有解码输入,则在RTCP消息中发送请求IDR帧的命令。 参考videoreceivestream :3360解码、请求密钥帧这两个函数来实现。

四.见https://tools.IETF.org/html/RFC 4585

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。