webrtc音频QOS方法四(音频接收端NACK流程实现)
一、概述
发送端的音视频NACK实现没有差异,是共用一套rtp_packet_history代码,这样做的好处是,当要清空NACK队列时,音视频一起清空,可以防止出现音视频不同步异常;在接收端,音视频NACK实现细节是不一样的。
视频接收端NACK实现函数是NackModule2,音频接收端NACK实现函数是NackTracker。
音视频NACK实现差异主要有两点:
- 视频NACK满足一定条件会进行IDR帧请求:视频模块会配置nack_list的最大长度为kMaxNackPackets,即本次发送的nack包至多可以对kMaxNackPackets个丢失的包进行重传请求。如果丢失的包数量超过kMaxNackPackets,会循环清空nack_list中关键帧之前的包,直到其长度小于kMaxNackPackets。也就是说,放弃对关键帧首包之前的包的重传请求,直接而快速的以关键帧首包之后的包号作为重传请求的开始。这部分请参见如下链接实现:webrtc QOS方法一.2(接收端NACK流程实现)_CrystalShaw的博客-CSDN博客1、概述webrtc接收端触发发送NACK报文有两处:1、接收RTP报文,对序列号进行检测,发现有丢包,立即触发发送NACK报文。2、定时检查nack_list_队列,2、流程实现
https://blog.csdn.net/CrystalShaw/article/details/107003142
- 音频NACK因为JitterBuffer有kAccelerate(加速播放)、kExpand(减速播放)、kAlternativePlc(丢包补偿)、kMerge(融合)的异常恢复操作,不是所有报文都需要重传。所以需要在解码端需要更新nack_list的出包时间戳。
二、代码走读
1、音频接收端NACK的NackTracker对外接口函数说明
2、音频接收端NACK在系统调度位置
km continue
webrtc音频QOS方法四(音频接收端NACK流程实现)相关推荐
- webrtc QOS方法四.2(拥塞算法学习)
一.网图简介 现在我们接入网络的方式有三种:手机4G/5G.WIFI.网线.三种接入方式在网络中的位置如上图所示.引起网络质量差的原因也有很多,比方说4G/5G.WIFI信号弱.wifi信道竞争.云营 ...
- Android音频相关(四)设置铃声流程总结
本文主要介绍的是设置铃声的流程,在流程梳理清楚后解决问题也有大致的方向了. 一.要点概述 补充知识点: frameworks/base/packages/SettingProvider/中的生成的数据 ...
- WebRTC系列-Qos系列之发送NACK
文章目录 1. NACK简述 2. 判断包位置的算法 2. WebRTC中NACK的处理流程 2.1 主要流程函数分析 2.2 是否丢包判断 2.3 乱序包的处理 在之前的文章 WebRTC系列-Qo ...
- 怎么从视频中提取音频,这四个方法简单实用!
如果你经常在抖音.快手等短视频平台上听到各种改编后的歌曲,或是用别的乐器吹拉弹奏出来的伴奏,可能会想知道怎样把视频中的音频提取出来以便在其他平台上使用.本文为你准备了四种方法来提取音频. 方法一:录音 ...
- webrtc QOS方法二.1(FEC原理)
一.概述 webrtc冗余打包方式有三种:Red(rfc2198).Ulpfec(rfc5109).Flexfec(草案).其中Red和Ulpfec要成对使用. 二.RedFEC 简单将老报文打包到新 ...
- html在线录音并上传,一种网页版在线录制wav音频的方法与流程
本发明涉及网页版音频录制的技术领域,特别涉及一种网页版在线录制wav音频的方法. 背景技术: 随着国内经济的快速发展,人们的生活水平越来越高,而随之带动了电子产品的广泛应用与高速发展,电子已普及到人们 ...
- 怎么把视频转换成音频?视频转音频方法分享。
怎么把视频转换成音频?对于从事剪辑行业的小伙伴们来说,背景音乐是最不可或缺的一个部分,很多小伙伴所使用的背景音乐也是自己制作的,那么在我们看到有视频的背景音乐我们特别喜欢的情况下,该如何去制作成我们的 ...
- linux驱动:音频驱动(四)ASoc之machine设备
linux驱动:音频驱动(四)ASoc之machine设备
- .NET NAudio音频录制方法 2021-02-13
.NET NAudio音频录制方法 写在前面 文章主要内容 说明 检测录音电平 调节录音电平 开始录音 调整音频 保存音频 关于作者 讨论 SomeONe Clint Nate Greenwood C ...
- python实现自动拨打电话_twilio python自动拨打电话,播放自定义mp3音频的方法
有个小项目,需求是某事件发生时,给客户打电话,提醒客户.需要事先录制好一段音频,客户接通电话后,自动播放. 1. 注册twilio账号 2. 买一个电话号码 3. 安装twilio pip insta ...
最新文章
- 利用PowerDesigner比较2个数据库
- mysql建表简单的date数据类型_MySQL建表 TIMESTAMP 类型字段问题
- 理清 WebSocket 和 HTTP 的关系
- php面试题11(边看边复习刚刚讲的)(array_multisort($arr1,$arr2); 用$arr1来排序$arr2。)...
- 深度学习 正则化 正则化率_何时以及如何在深度学习中使用正则化
- linux内核与用户空间的九种通信机制
- mysql kill hup_kill -HUP pid
- JZOJ_3928. 射击 (Standard IO)
- jQuery.Validate.js验证大表单的优化
- expdp导出表结构_Oracle用exp导出部分表和expdp
- 鹏芯U盘(UDK2008)意外断电后修复
- 数字图像处理(matlab版)第三版,数字图像处理及MATLAB实现(第3版)
- U盘文件或目录损坏且无法读取修复方法?
- html5超萌哈士奇,哈士奇,是一种让人又爱又恨,又拥有自己独特风格的雪橇犬...
- jquery 调用 click 事件 的 三种 方式
- 社交类App如何防范黑产垃圾用户?
- 有关Unity3D的OnRenderImage()和Blit()的一些问题
- 用标志域tag判断队空队满的入队和出队算法
- Skyline 3dm格式l数据困惑
- 帝国cms php序号,帝国cms教程:如何使用灵动标签生成带序号的列表