前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教你如何解决双声道文件在Android设备上播放声音异常问题

教你如何解决双声道文件在Android设备上播放声音异常问题

原创
作者头像
何耀昌-pcyhe
发布2020-12-06 06:29:14
5K0
发布2020-12-06 06:29:14
举报

前言

最近收到用户反馈直播录制文件在Android手机上播放声音异常,几乎听不到声音,只有滋滋的电流声,但是在ios、pc端播放却是正常的,是Android手机的问题还是视频本身的问题呢?我们来一探究竟~~

问题定位:

1、使用FFmpeg命令获取文件信息(如图1),看到音频流是双声道立体声的。

图1
图1

我们先来了解下什么是声道:声道指声音在录制或者播放时不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或回放时扬声器的数量。常见的有单声道、双声道、4声道、5.1声道、7.1声道等。

目前市面上大多数的Android手机都是单声道的(也就是只有一个扬声器),上面我们说到此视频是双声道的,那是否双声道音视频在单声道机型上播放都没有声音呢?非也!

在VLC上播放此视频,点击音频->可视化->波形 (如图2)可以观察下具体的波形(如图3,上方是左声道,下面是右声道),相位相差180度,当左声道声波处在波峰时,右声道声波处在波谷,两个声道声波叠加一起再输出到同一个扬声器,刚好就抵消没有声音了,如果我们插上耳机发现是可以听到声音的。

图2
图2
图3
图3

那么此时你肯定疑惑为什么会出现相位相反的情况呢?Me too,经过查找一番资料,罪魁祸首大概率就是麦克风极性接反了。。。

解决方案

1、提前预防

如上所述,当然是检查下麦克风设备接线是否正常咯。

2、亡羊补牢

1)使用FFmpeg命令处理,音频流仅保留左声道,输出到新的文件(有声音.mp4)中,输出文件音频流声道类型为mono(即单声道),这种情况下,当设备有两个扬声器,两个扬声器依旧都能听到声音,只不过播放的都是同一声道的音频源,所以波形也都是一样的(如图5),最后在Android设备播放测试声音正常。

代码语言:javascript
复制
ffmpeg -i 没声音.mp4 -map_channel 0.1.0 -c:v copy 有声音.mp4
图4
图4
图5
图5

2)如果是纯音频文件有相位相反的情况,也可以使用音频编辑软件处理(以Audition为例),导入文件(这里还是使用之前的视频文件测试),选择右声道(左右声道均可)点击效果->反相(如图6),看到右声道相位反转过来与左声道一致了(如图7),然后保存即可(只能导出音频文件),在Android设备上播放也同样正常。

图6
图6
图7
图7

小结

以上就是双声道文件在Android设备上声音异常的原因及处理办法,文中的case是声道波形反相给我们带来的不便,但实际生活中很多方面都应用了反相的原理,例如降噪耳机就是用噪音反向的波形抵消噪音,从而实现降噪的效果,大家有兴趣可以网上再了解下。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 问题定位:
  • 解决方案
  • 小结
相关产品与服务
云点播
面向音视频、图片等媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化的高品质媒体服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档