码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 音频的传输链路与延迟优化点


    麦克风->系统采集模块->APP采集模块->3A、混响等音效->混音->音频编码->RTC网络发送->

    MediaServer->RTC网络接收->音频jitter buffer->音频解码->音频的后处理(均衡)->APP播放模块->x系统播放模块->扬声器/耳机。

    整个链路如上;

    采播延迟:

    音频的『采播延迟』不同机型的差异比较大,iOS效果比较好,采集+播放大约在20-30ms.

    Android好的机型在30ms,差的机型可以达到300ms.

    优化手段:通过AAudio等方式对延迟进行优化。

    目标延迟:iOS:20-30 Android: 部分机型30-70ms

    3A延迟

    音效需要分开来看,一般混响类音效不会引入延迟,但是变声类音效会引入延迟。

    优化手段:佩戴有线耳机,可以关闭3A,减少30ms延迟。

    对外外放场景,可以对30ms的3A算法进行优化到10ms。

    限制不开启音效,或者只开启不引入延迟的混响音效。

    目标延迟:耳机 0ms。 外放 10ms。

    RTC编码

    RTC的音频编码帧长一般是20ms.

    优化手段:需要将编码帧长变为10ms, 支持全链路10ms帧长,减少10ms延迟。

    RTC网络延迟 

    一般就是RTT/2, 通过多部署边缘服务器来做到尽可能离得用户近一点,通过关闭Pacer等网络传输策略的优化。

    网络较好的情况下,延迟约为5-10ms。

    音频jitter buffer延迟

    引入延迟最多的地方,是RTC区别于直播,能做到百毫秒延迟的原因,主要是根据网络状态动态调整jitter buffer的大小。

    引入延迟的目的是为了抗抖动,延迟越高,抗抖动能力越强,卡断越少。

    相比于延迟,卡顿对于用户体验影响更大,一般会引入100-1000ms的延迟,大部分场景在300ms一下。

    优化手段:

    减少jitter buffer的大小,结合其他手段来减少卡顿(FEC、NACK、主动重传、快速下降、10ms编码帧长)来防止频繁的卡断。

    最小维持在30-40ms,才能保证MOS打分。

    理想情况下的总延迟(iOS):

    30(采播延迟) + 0(3A+音效bypass)+ 5(编码)+5(上行网络传输)+5(下行网络传输)+35(jitter buffer)+0(后处理算法bypass) = 80ms。

  • 相关阅读:
    02 CSS块级元素和行内元素
    【批处理DOS-CMD命令-汇总和小结】-文件与目录操作命令(md、rd、xcopy、dir、cd、set、move、copy、del、type、sort)
    Reference for Ruijie Switch Configuration
    《MATLAB 神经网络43个案例分析》:第31章 思维进化算法优化BP神经网络——非线性函数拟合
    云原生之容器编排实践-通过IDEA连接Docker服务
    68.qt quick-qml多级折叠下拉导航菜单 支持动态添加/卸载 支持qml/widget加载等
    Spark与SQL之间NB的转换_withClumn,split及SubString
    使用开源Cesium+Vue实现倾斜摄影三维展示
    曹操最出名的4首诗赏析
    一种改进的进化模型和混沌优化的萤火虫算法-附代码
  • 原文地址:https://blog.csdn.net/lanbojini1209/article/details/136208014
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号