Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >教你如何解决双声道文件在Android设备上播放声音异常问题

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

原创
作者头像
何耀昌-pcyhe
发布于 2020-12-05 22:29:14
发布于 2020-12-05 22:29:14
5.7K00
代码可运行
举报
运行总次数:0
代码可运行

前言

最近收到用户反馈直播录制文件在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
代码运行次数:0
运行
AI代码解释
复制
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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
音频基础知识 - PCM 浅析
最近有个需求:对音频裁剪时,裁剪条的纵坐标必须是音频音量,以帮助用户更好的选择音频区域,所以就需要快速准确的提取出音频的音量列表。本文主要介绍下从mp4文件中提取音轨音量的方式,以及相关的知识点。
字节流动
2021/03/16
4.2K0
音频基础知识 - PCM 浅析
一张图说明wav文件头各段表示的含义
16进制-10进制在线转换器:https://tool.oschina.net/hexconvert
阿志小管家
2024/02/02
3680
一张图说明wav文件头各段表示的含义
科普常识:常见音频参数解析
        如果在计算机加上相应的音频卡—就是我们经常说的声卡,我们可以把所有的声音录制下来,声音的声学特性如音的高低等都可以用计算机硬盘文件的方式储存下来。反过来,我们也可以把储存下来的音频文件用一定的音频程序播放,还原以前录下的声音。
朵朵花儿
2019/12/28
3K0
我的非线性视频编辑器MiaoVideoCut(1) --- 视频基础知识及环境搭建
所谓视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo、微软公司的WMV以及Apple公司的QuickTime等。
瑶瑶
2020/06/03
1.3K0
IOS播放音频编码AAC_HE_V2无声音,如何解决?
最近一些客户遇到,mp4格式的视频文件,在浏览器播放有声音,但在ios播放无声音。还有这种情况?
clairehou
2020/11/06
5.1K0
IOS播放音频编码AAC_HE_V2无声音,如何解决?
Audio Unit录音(播放伴奏+耳返)
前言 相关文章: 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 使用AudioToolbox播放AAC
落影
2018/04/27
3.2K0
Audio Unit录音(播放伴奏+耳返)
QQ音乐银河音效技术实践——音乐重放效果的补偿与修饰
音效渲染是音频或音乐播放器最为重要的后处理模块之一。LiveVideoStackCon 2022 北京站邀请到腾讯音乐银河音效开发负责人——闫震海,为大家介绍银河音效在QQ音乐播放器中的创新应用,包括空间环绕效果和音效制作工具等内容。 文/闫震海 编辑/LiveVideoStack 大家好!很高兴和大家一起分享交流关于QQ音乐银河音效的一些技术实践。 相信大家对音效处理都不陌生。它已经被广泛应用在各种音频信号、音乐信号的渲染场景中。本次分享重点是音乐重放场景,如何利用音效对最终听到的感觉进行补偿和修饰。
LiveVideoStack
2023/05/05
1.8K0
QQ音乐银河音效技术实践——音乐重放效果的补偿与修饰
iOS音频能力提升——PCM基础
前言 音频是移动端很重要的能力,像直播类、在线教育类、唱歌类、短视频类等APP,都离不开音频功能。 具备音频相关知识与能力,对未来的职业发展有很大优势。 本文主要围绕音频知识的基础——PCM,介绍PCM的原理和相关操作。 声音是模拟的连续信号,而计算机只能离散的存储。为了使得计算机具备音频的能力,必须支持连续音频信号的离散化描述,而PCM具备这个能力。 正文 PCM脉冲编码调制(Pulse Code Modulation) 脉冲编码调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数
落影
2018/04/27
2.8K0
iOS音频能力提升——PCM基础
Android FFmpeg系列02--音视频基础
软编(解)的时候CPU负载重,性能比硬编(解)低,但是通用性更好;硬编(解)性能高但是兼容性问题比较突出,特别是在Android平台,碎片化严重,MediaCodec的坑也是不少
雪月清
2022/09/08
1.1K0
音频基础知识
现实生活中,我们听到的声音都是时间连续的,我们称为这种信号叫模拟信号。模拟信号需要进行数字化以后才能在计算机中使用。
为为为什么
2023/05/18
1.6K0
音频基础知识
3D位置语音,引领吃鸡游戏体验升级
本文主要介绍了腾讯游戏音频引擎技术中的3D位置音效技术,通过此技术可以提升玩家在虚拟环境中的沉浸感。该技术通过算法模拟出声音在三维空间中的位置和运动轨迹,从而使玩家能够准确地判断声音来源的方向和距离。此外,该技术还能够在实时语音场景中应用,提升游戏玩家的语音沟通体验。
腾讯游戏云
2017/12/27
4K0
3D位置语音,引领吃鸡游戏体验升级
ffmpeg 常用命令存档
https://blog.csdn.net/sinat_14826983/article/details/82975561
美女视频
2019/11/01
2K0
ffmpeg 常用命令存档
【音视频原理】音频编解码原理 ② ( 采样值 - 本质分析 | 采样值 - 震动振幅值 | 采样值的录制与播放 | 采样值在播放设备中才有意义 | 音频采样率 | 音频采样精度 | 音频通道数 )
物体 发生 震动 , 在 空气中传播 , 被 人耳 接收 产生 我们理解中的声音 ;
韩曙亮
2024/01/26
6700
【音视频原理】音频编解码原理 ③ ( 音频 比特率 / 码率 | 音频 帧 / 帧长 | 音频 帧 采样排列方式 - 交错模式 和 非交错模式 )
原始 PCM 采样的音频 , 其 比特率 = 采样频率 * 采样位数 * 音频通道数 ;
韩曙亮
2024/01/28
2.8K1
【音视频原理】音频编解码原理 ③ ( 音频 比特率 / 码率 | 音频 帧 / 帧长 | 音频 帧 采样排列方式 - 交错模式 和 非交错模式 )
声网3D在线互动场景空间音频的实时渲染——如何把“声临其境”推向极致
  //   编者按:千人有千耳,不同的人耳对于声音方位的适应已形成习惯,但在Meta RTC场景中如何让不同人也能畅想“身临其境”的感觉?3D在线互动场景空间音频的实时渲染又有哪些应用?LiveVideoStackCon 2022音视频技术大会上海站邀请到了声网音频策划负责人冯建元,为我们分享3D在线互动场景空间音频的实时渲染。 文/冯建元 整理/LiveVideoStack 大家下午好,我是来自声网的冯建元。 今天给大家主要分享一下声网在RTC 3D互动场景中是如何操作空间音频的渲染。让人在虚拟的场景
LiveVideoStack
2022/09/06
1.3K0
声网3D在线互动场景空间音频的实时渲染——如何把“声临其境”推向极致
音频基础知识
Nyquist 采样率大于或等于连续信号最高频率分量的 2 倍时,采样信号可以用来完美重构原始连续信号。
Gnep@97
2023/09/06
3.5K0
音频基础知识
音频数字化简单原理「建议收藏」
从字面上来说,数字化 (Digital) 就是以数字来表示,例如用数字去记录一张桌子的长宽尺寸,各木料间的角度,这就是一种数字化。跟数位常常一起被提到的字是模拟 ( Analog/Analogue) ,模拟的意思就是用一种相似的东西去表达,例如将桌子用传统相机 将三视图拍下来,就是一种模拟的记录方式。 两个概念:
全栈程序员站长
2022/08/01
2.4K0
【Android FFMPEG 开发】FFMPEG 音频重采样 ( 初始化音频重采样上下文 SwrContext | 计算音频延迟 | 计算输出样本个数 | 音频重采样 swr_convert )
① FFMPEG 初始化 : 参考博客 【Android FFMPEG 开发】FFMPEG 初始化 ( 网络初始化 | 打开音视频 | 查找音视频流 )
韩曙亮
2023/03/27
2.6K0
《除了吃鸡游戏,3D位置语音还可以用在哪里?》
| 导语 在刚刚结束的首届腾讯用户开放日上,腾讯音视频实验室带着3D位置音效解决方案,向所有用户亮相,为用户提供360度立体空间的沉浸式听觉体验,那么这项技术如何结合具体的场景提升用户听感和体验呢?这篇文章将会详细阐述 基于游戏开发引擎(例如Unreal、Unity)实现的3D音效在游戏中的应用已经非常普遍了,通过游戏引擎模拟重现空间中声源方位,例如CS中射击的枪声、中弹时的音效、附近敌人轻微的脚步声,可以显著提高游戏的沉浸感,造就身临其境的游戏体验。 这里我们可以听一段音视频实验室通过3D音效算法处理后的
腾讯Bugly
2018/03/23
1.6K0
【FFmpeg】SDL 音视频开发 ⑦ ( SDL 播放 PCM 音频数据 | 提取 PCM 格式数据 | 设置音频参数 | 打开音频设备 | 设置播放回调函数 | 播放音频数据 | 关闭音频设备 )
博客源码下载 : https://download.csdn.net/download/han1202012/89734548
韩曙亮
2024/09/17
8060
【FFmpeg】SDL 音视频开发 ⑦ ( SDL 播放 PCM 音频数据 | 提取 PCM 格式数据 | 设置音频参数 | 打开音频设备 | 设置播放回调函数 | 播放音频数据 | 关闭音频设备 )
推荐阅读
音频基础知识 - PCM 浅析
4.2K0
一张图说明wav文件头各段表示的含义
3680
科普常识:常见音频参数解析
3K0
我的非线性视频编辑器MiaoVideoCut(1) --- 视频基础知识及环境搭建
1.3K0
IOS播放音频编码AAC_HE_V2无声音,如何解决?
5.1K0
Audio Unit录音(播放伴奏+耳返)
3.2K0
QQ音乐银河音效技术实践——音乐重放效果的补偿与修饰
1.8K0
iOS音频能力提升——PCM基础
2.8K0
Android FFmpeg系列02--音视频基础
1.1K0
音频基础知识
1.6K0
3D位置语音,引领吃鸡游戏体验升级
4K0
ffmpeg 常用命令存档
2K0
【音视频原理】音频编解码原理 ② ( 采样值 - 本质分析 | 采样值 - 震动振幅值 | 采样值的录制与播放 | 采样值在播放设备中才有意义 | 音频采样率 | 音频采样精度 | 音频通道数 )
6700
【音视频原理】音频编解码原理 ③ ( 音频 比特率 / 码率 | 音频 帧 / 帧长 | 音频 帧 采样排列方式 - 交错模式 和 非交错模式 )
2.8K1
声网3D在线互动场景空间音频的实时渲染——如何把“声临其境”推向极致
1.3K0
音频基础知识
3.5K0
音频数字化简单原理「建议收藏」
2.4K0
【Android FFMPEG 开发】FFMPEG 音频重采样 ( 初始化音频重采样上下文 SwrContext | 计算音频延迟 | 计算输出样本个数 | 音频重采样 swr_convert )
2.6K0
《除了吃鸡游戏,3D位置语音还可以用在哪里?》
1.6K0
【FFmpeg】SDL 音视频开发 ⑦ ( SDL 播放 PCM 音频数据 | 提取 PCM 格式数据 | 设置音频参数 | 打开音频设备 | 设置播放回调函数 | 播放音频数据 | 关闭音频设备 )
8060
相关推荐
音频基础知识 - PCM 浅析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验