本文为 《直播疑难杂症排查》系列的第八篇文章,我们重点看看直播过程中出现的杂音、噪音和回声等问题。

相比于视频而言,音频要敏感得多,视频画面有噪点、马赛克都还是可以勉强被接受,而声音一旦有任何瑕疵,人耳都会特别容易感觉到,而且难以忍受。

1. 问题现象

常见的音频问题现象描述如下:

  • 电流音,爆音,滋滋声或者嘟嘟声
  • 声音断断续续,听不清楚
  • 回声,能听到自己说话的声音
2. 问题排查

2.1 参数配置问题

上面也有提到,音频是一个特别敏感的东西,涉及到许多参数配置,一旦配置不太匹配,就会导致声音听起来非常诡异(比如:采样率是 32000Hz 的音频,给播放器配置为 8000Hz 或者 44100Hz,就明显会出现音频慢放或者快放的效果)。

常见的音频参数和基本原理,可以参考我的这篇文章,这里就不再赘述了:《Android音频开发(1):基础知识》

我们只需要注意的是,无论是采集和播放,都要给系统的 API 以及第三方的库配置正确的参数,如:采样率、位宽、声道数等等。

2.2 代码层面的原因

常见的代码层面的问题有如下几种:

  • 音频 buffer 大小不匹配,一段 1024 bytes 的音频,放到了 2048 bytes 的数组,导致尾部有随机数
  • 音频 resample 重采样的算法问题,导致采样出来的数据出了问题
  • Android 的 ByteBuffer 取出数组,是不能直接用 .array() 方法的,而需要用 .get() 方法
  • iOS 系统,其他 app 通过系统 API 更改了 AudioSession 采样率的配置

2.3 网络波动

视频是一帧一帧连续的图像构成的,在播放过程中,如果无法按时渲染,则会出现卡顿的效果;如果丢失几帧画面,则会出现快进效果。

而音频是流式的,虽然也被切分为了一个个音频帧,但如果无法按时播放或者连续丢失较多的音频帧,则会明显听到断断续续的声音出现。特别是在弱网、丢包率高等不稳定网络环境下,很容易出现这种情况。

2.4 回声消除

回声一般出现在同时有音频的采集和播放的场景,比如:连麦互动、混音返听等等,采集到的音频通过扬声器又播放出来了,同时又被采集了进去,从而产生了回声或者啸叫声。

这样的场景下,一般需要通过系统的回声消除 API,或者第三方回声消除库(如:speexdsp,webrtc 等)进行处理。

注意:很多 Android 机型硬件自带的回声消除效果并不是很好。

2.5 混音越界

音频的 PCM 数据,通常用 short 数组来存放,当我们做一些多路音频的混音功能的时候,如果不注意处理 short 类型的大小越界,则往往带来爆音的问题。下面是一段参考 webrtc 的混音代码,专门针对混音越界做了简单处理,可以参考参考:

3. 小结

关于直播杂音、噪音、回声问题的问题排查大致就介绍道这里了。

转载于:https://blog.51cto.com/ticktick/1933255

直播疑难杂症排查(8)— 播放杂音、噪音、回声问题相关推荐

  1. [转载]如何解决直播中的播放杂音、噪音、回声问题 | 直播疑难杂症排查

    继<直播技术详解>系列文章之后,我们推出了这个新的系列<直播疑难杂症排查>,把解决直播问题的经验逐步分享出来,同时也会穿插一些音视频开发的基础知识和优化经验,希望能够帮助到直播 ...

  2. 直播疑难杂症排查(2) — 播放卡顿

    本文是 <直播疑难杂症排查>系列的第二篇文章,我们主要分析下如何排查播放卡顿问题. 1. 播放卡顿的表现 播放卡顿的表现总结下来包括但不限于以下这些: 频繁出现缓冲 播放不够流畅,画面一卡 ...

  3. 《直播疑难杂症排查》之三:首开慢

    本系列会涵盖的内容包括但不限于如下一些主题: 播放失败 播放卡顿 首开慢 延时高 音画不同步 马赛克严重 播放黑屏.花屏.绿屏 播放杂音.噪音.回声 点播拖动不准 直播发热问题 其他问题(待续) 本文 ...

  4. 如何在直播中解决黑屏、花屏、闪屏问题 | 直播疑难杂症排查

    首先我们要明白,黑屏.花屏.闪屏等问题,可能是推流端的问题,也可能是播放器的问题,遇到这些现象,我们要第一时间用别的播放器(如 VLC,ffplay)试试,如果都出现同样的问题,那么多半是流本身的问题 ...

  5. 直播疑难杂症排查(7)— 黑屏、花屏、闪屏问题

    本文是 <直播疑难杂症排查>系列的第七篇文章,我们来重点看看直播中常见的各种黑屏.花屏.闪屏问题.首先我们要明白,黑屏.花屏.闪屏等问题,可能是推流端的问题,也可能是播放器的问题,遇到这些 ...

  6. 直播疑难杂症排查(5)— 音画不同步

    本文是 <直播疑难杂症排查>系列的第五篇文章,我们重点来看看直播中常见的音画不同步问题. 1. 音画不同步的表现 很容易判断,就是画面和声音不匹配. 2. 音画同步的基础概念 首先我们要明 ...

  7. 直播疑难杂症排查(1)— 播放失败

    1. 播放失败的表现 播放失败的表现总结下来包括但不限于以下这些: - 界面上一直显示 "加载中",或者提示播放失败的错误 - 播放画面卡死不动,但 UI 按钮可以点击 - 有声音 ...

  8. android音频杂音问题_直播疑难杂症排查(8)— 播放杂音、噪音、回声问题-阿里云开发者社区...

    1.  问题现象 常见的音频问题现象描述如下: - 电流音,爆音,滋滋声或者嘟嘟声 - 声音断断续续,听不清楚 - 回声,能听到自己说话的声音 2. 问题排查 2.1 参数配置问题 上面也有提到,音频 ...

  9. 《直播疑难杂症排查系列》之一 :播放失败

    第一篇文章我们从播放开始,因为观看直播最重要的一个环节就是打开播放器,很多问题的直接反馈也是来自观众端. 导致播放失败的原因有很多种,不一定是播放器本身的问题,不过通过播放器,我们很容易反过来排查服务 ...

最新文章

  1. 8.分布式数据库HBase第4部分
  2. 软件工程课堂作业(八)——结对开发(三)
  3. nginx服务器远程无法访问,nginx首次安装远程无法访问
  4. IAR不进调试界面DEBUG界面,直接烧写程序。完美解决,还可以添加到工具栏
  5. 浅析C#的事件处理和自定义事件
  6. CentOS 6.7 升级gcc 至 5.2.0
  7. 10月15日发布!谷歌Pixel 4系列或将全系支持5G
  8. PostgreSQL学习总结(6)—— PostgreSQL 模式(SCHEMA)详解
  9. 9.11两点间距离(1636050091)
  10. 语法》第一章 基本语法
  11. android tv webview,Android TV开发---WebView焦点处理
  12. 跨应用的访问 contentprovider
  13. 删除exchange误发邮件
  14. (转)洞见 | 为什么银行不愿意坐上Fintech这列过山车?
  15. C++windows内核编程笔记day11 win32静态库和动态库的使用
  16. 单片机c语言fft函数,单片机ADC采样FFT计算试验
  17. 华为U2000网管研究实录 (4) - 运行分析(系统监控客户端)
  18. 中国住户调查年鉴(2000-2021年)
  19. 戴维斯分校 计算机硕士,2017年美国加州大学戴维斯分校研究生申请之计算机......
  20. java徽章_java – 设计可插拔的点和徽章系统

热门文章

  1. virtualbox免费虚拟机
  2. Linux将两个文件合并
  3. Bookshelf连接pg数据库
  4. (2021-02-04)并发编程简介-并发编程(1)
  5. mac系统vscode配置c/c++环境
  6. 我的windows10 终于又可以休眠了
  7. 英语常用日常交际用语
  8. Copilot使用的关卡——GitHub教育认证方法和注意事项
  9. 强化学习(RL)初印象
  10. 运动员最佳匹配问题【回溯算法】