WebRTC系列-Qos系列之音频设置丢包重传nack
Posted 简简单单lym
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebRTC系列-Qos系列之音频设置丢包重传nack相关的知识,希望对你有一定的参考价值。
文章目录
1. 打开方式
在目前的WebRTC各个版本中音频的重传目前都是默认处于关闭的,也就是音频的sdp里默认是没有NACK;设置打开音频NACK有两种方式:
- 修改源码的方式,通过前面的一系列文章我们知道WebRTC中收集音频编码信息是在
WebRtcVoiceEngine
的CollectCodecs(...)
方法中,在这个方法里可以找到kRtcpFbParamTransportCc
也就是"transport-cc"
设置,在sdp中是a=rtcp-fb:111 transport-cc
;但是这种方式只适合有源码的修改; - 修改sdp的方式,在调用
setRemoteSessionDescription
之前修改sdp(这里不管是offer还是answer,都是在setRemoteSessionDescription之前),修改建议使用libsdptransform c++版本把sdp转成json操作,浏览器有对应的sdp-transform js版;转成json后修改方式:
WebRtc Native M96 远端视频接收之NackRequesterNackSender-NACK丢包重传原理
WebRTC NACK is Negative Acknowledgement. One of the mechanisms for delivery errors correction in WebRTC
rtp包是如何到达NackRequester模块的
注意,在M96版本中,类名是NackRequester
Call::DeliverPacket
Call::DeliverRtp
RtpStreamReceiverController::OnRtpPacket
RtpDemuxer::OnRtpPacket
RtpVideoStreamReceiver2::OnRtpPacket
RtpVideoStreamReceiver2::ReceivePacket
RtpVideoStreamReceiver2::OnReceivedPayloadData
NackRequester::OnReceivedPacket
NackRequester类介绍
继承关系:
class NackRequester final : public NackRequesterBase
主要成员变量:
std::map<uint16_t, NackInfo, DescendingSeqNumComp<uint16
以上是关于WebRTC系列-Qos系列之音频设置丢包重传nack的主要内容,如果未能解决你的问题,请参考以下文章
WebRtc Native M96 远端视频接收之NackRequesterNackSender-NACK丢包重传原理
Android IOS WebRTC 音视频开发总结(八十七)-- WebRTC中丢包重传NACK实现分析