webrtc 添加音频重传(NACK)功能

本文原创自 http://blog.csdn.net/voipmaker  转载注明出处。

webrtc的音频丢包处理部分,目前谷歌默认带PLC.FEC, 但是没有添加重传的协商能力,重传的rtcp标准协商属性是 在sdp里面增加针对某个codec 的一个sdp属性,

格式为 a=rtcp-fb:ocdec_pt nack  这里的codec_pt是具体音频codec的payload值, 通过这个属性协商是否支持丢包重传功能,音频重传在处理连续丢包情况下还是有用的,一般

内置的opus的fec只能支持n-1到n的丢包保护,而且默认的fec功能即使是开启,编码端也不一定会持续发带fec的包,所以在网络类似发生突然断线又立即恢复,或者网络发生拥塞,导致udp连续丢包情况下,可以利用nack重传,当然,这是以牺牲延迟为代价的,需要根据实际使用场景发起nack请求。

具体webrtc里面咋么实现重传呢? 很简单,在获取到sdp时,把a=rtcp-fb:%d nack 追加到sdp的音频属性里面,再发给对方就可以了。默认获取的sdp没有带,但是底层是支持这个属性的协商的。

你可能感兴趣的:(WebRTC,Audio,Engine)