Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >教你如何解决双声道文件在Android设备上播放声音异常问题

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

原创
作者头像
何耀昌-pcyhe
发布于 2020-12-05 22:29:14
发布于 2020-12-05 22:29:14
6K00
代码可运行
举报
运行总次数: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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
科普常识:常见音频参数解析
        如果在计算机加上相应的音频卡—就是我们经常说的声卡,我们可以把所有的声音录制下来,声音的声学特性如音的高低等都可以用计算机硬盘文件的方式储存下来。反过来,我们也可以把储存下来的音频文件用一定的音频程序播放,还原以前录下的声音。
朵朵花儿
2019/12/28
3.1K0
音频基础知识 - PCM 浅析
最近有个需求:对音频裁剪时,裁剪条的纵坐标必须是音频音量,以帮助用户更好的选择音频区域,所以就需要快速准确的提取出音频的音量列表。本文主要介绍下从mp4文件中提取音轨音量的方式,以及相关的知识点。
字节流动
2021/03/16
4.3K0
音频基础知识 - PCM 浅析
【Android 高性能音频】Oboe 开发流程 ( Oboe 音频帧简介 | AudioStreamCallback 中的数据帧说明 )
在 【Android 高性能音频】Oboe 开发流程 ( 导入 Oboe 库 | 使用预构建的二进制库和头文件 | 编译 Oboe 源码 ) 博客中介绍了 如何导入 Oboe 函数库到项目中 , 本博客中在导入 Oboe 函数库的基础上 , 进行 Oboe 播放器功能开发 ;
韩曙亮
2023/03/28
13.5K0
IOS播放音频编码AAC_HE_V2无声音,如何解决?
最近一些客户遇到,mp4格式的视频文件,在浏览器播放有声音,但在ios播放无声音。还有这种情况?
clairehou
2020/11/06
5.2K0
IOS播放音频编码AAC_HE_V2无声音,如何解决?
Audio Unit录音(播放伴奏+耳返)
前言 相关文章: 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 使用AudioToolbox播放AAC
落影
2018/04/27
3.2K0
Audio Unit录音(播放伴奏+耳返)
直播软件开发之Java音视频解决方案:音视频基础知识
从信息论的观点来看,描述信源的数据是信息和数据冗余之和,即:数据=信息+数据冗余。音频信号在时域和频域上具有相关性,也即存在数据冗余。将音频作为一个信源,音频编码的实质是减少音频中的冗余。
云豹kj的晨曦
2020/09/14
1.2K0
直播软件开发之Java音视频解决方案:音视频基础知识
Android FFmpeg系列05--音频解码与播放
在前面的连载系列中,我们分别用FFmpeg的软解和硬解两种方式解码了本地mp4文件的视频流并使用OpenGL渲染上屏
雪月清
2022/09/21
1.5K0
Android FFmpeg系列05--音频解码与播放
【音视频原理】音频编解码原理 ② ( 采样值 - 本质分析 | 采样值 - 震动振幅值 | 采样值的录制与播放 | 采样值在播放设备中才有意义 | 音频采样率 | 音频采样精度 | 音频通道数 )
物体 发生 震动 , 在 空气中传播 , 被 人耳 接收 产生 我们理解中的声音 ;
韩曙亮
2024/01/26
8700
音频基础知识
Nyquist 采样率大于或等于连续信号最高频率分量的 2 倍时,采样信号可以用来完美重构原始连续信号。
Gnep@97
2023/09/06
4.1K0
音频基础知识
Android多媒体之认识声音、录音与播放(PCM)
一、对声音的简单认识 1、模拟信号[摘录于此] 模拟信号传输过程中就是利用传感器把各种自然界各种连续的信号转换为几乎一模一样的电信号。 比如说话声音,原本是声带的震动。经过麦克风的采集,将声波信号转换
张风捷特烈
2019/01/07
3.8K1
影视后期丨Adobe Audition安装教程-AU软件全版本下载地址 +干货分享
Adobe Audition 的是一款专业音频编辑和混合环境,其前身为 Cool Edit Pro(1997年由Syntrillium开发),2003 年被 Adobe 收购,并将其音频技术融入到了旗下 Premiere、After Effects 等影视相关的软件中。
木子学Lee
2023/02/26
3.6K0
影视后期丨Adobe Audition安装教程-AU软件全版本下载地址 +干货分享
【音视频原理】音频编解码原理 ③ ( 音频 比特率 / 码率 | 音频 帧 / 帧长 | 音频 帧 采样排列方式 - 交错模式 和 非交错模式 )
原始 PCM 采样的音频 , 其 比特率 = 采样频率 * 采样位数 * 音频通道数 ;
韩曙亮
2024/01/28
3.5K1
【音视频原理】音频编解码原理 ③ ( 音频 比特率 / 码率 | 音频 帧 / 帧长 | 音频 帧 采样排列方式 - 交错模式 和 非交错模式 )
音频基础知识
现实生活中,我们听到的声音都是时间连续的,我们称为这种信号叫模拟信号。模拟信号需要进行数字化以后才能在计算机中使用。
为为为什么
2023/05/18
1.7K0
音频基础知识
Android FFmpeg系列02--音视频基础
软编(解)的时候CPU负载重,性能比硬编(解)低,但是通用性更好;硬编(解)性能高但是兼容性问题比较突出,特别是在Android平台,碎片化严重,MediaCodec的坑也是不少
雪月清
2022/09/08
1.1K0
iOS音频能力提升——PCM基础
前言 音频是移动端很重要的能力,像直播类、在线教育类、唱歌类、短视频类等APP,都离不开音频功能。 具备音频相关知识与能力,对未来的职业发展有很大优势。 本文主要围绕音频知识的基础——PCM,介绍PCM的原理和相关操作。 声音是模拟的连续信号,而计算机只能离散的存储。为了使得计算机具备音频的能力,必须支持连续音频信号的离散化描述,而PCM具备这个能力。 正文 PCM脉冲编码调制(Pulse Code Modulation) 脉冲编码调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数
落影
2018/04/27
2.8K0
iOS音频能力提升——PCM基础
python wave音频库使用(一)
WAV是最常见的声音文件格式之一,是微软公司专门为Windows开发的一种标准数字音频文件,该文件能记录各种单声道或立体声的声音信息,并能保证声音不失真。 [图片上传中...(image.png-fc53c5-1587727221744-0)]
李小白是一只喵
2020/04/27
2.2K0
QQ音乐银河音效技术实践——音乐重放效果的补偿与修饰
音效渲染是音频或音乐播放器最为重要的后处理模块之一。LiveVideoStackCon 2022 北京站邀请到腾讯音乐银河音效开发负责人——闫震海,为大家介绍银河音效在QQ音乐播放器中的创新应用,包括空间环绕效果和音效制作工具等内容。 文/闫震海 编辑/LiveVideoStack 大家好!很高兴和大家一起分享交流关于QQ音乐银河音效的一些技术实践。 相信大家对音效处理都不陌生。它已经被广泛应用在各种音频信号、音乐信号的渲染场景中。本次分享重点是音乐重放场景,如何利用音效对最终听到的感觉进行补偿和修饰。
LiveVideoStack
2023/05/05
2K0
QQ音乐银河音效技术实践——音乐重放效果的补偿与修饰
《除了吃鸡游戏,3D位置语音还可以用在哪里?》
| 导语 在刚刚结束的首届腾讯用户开放日上,腾讯音视频实验室带着3D位置音效解决方案,向所有用户亮相,为用户提供360度立体空间的沉浸式听觉体验,那么这项技术如何结合具体的场景提升用户听感和体验呢?这篇文章将会详细阐述 基于游戏开发引擎(例如Unreal、Unity)实现的3D音效在游戏中的应用已经非常普遍了,通过游戏引擎模拟重现空间中声源方位,例如CS中射击的枪声、中弹时的音效、附近敌人轻微的脚步声,可以显著提高游戏的沉浸感,造就身临其境的游戏体验。 这里我们可以听一段音视频实验室通过3D音效算法处理后的
腾讯Bugly
2018/03/23
1.8K0
3D位置语音,引领吃鸡游戏体验升级
本文主要介绍了腾讯游戏音频引擎技术中的3D位置音效技术,通过此技术可以提升玩家在虚拟环境中的沉浸感。该技术通过算法模拟出声音在三维空间中的位置和运动轨迹,从而使玩家能够准确地判断声音来源的方向和距离。此外,该技术还能够在实时语音场景中应用,提升游戏玩家的语音沟通体验。
腾讯游戏云
2017/12/27
4.1K0
3D位置语音,引领吃鸡游戏体验升级
【Android 高性能音频】AAudio 音频流 样本缓冲 相关配置 ( 通道数 | 样本格式 | 帧缓冲 | 采样率 | 每帧样本数 == 通道数 )
创建 AAudio 音频流 , 需要先创建 AAudio 音频流构建器 , 然后在通过该构建器创建音频流 ;
韩曙亮
2023/03/27
9280
推荐阅读
科普常识:常见音频参数解析
3.1K0
音频基础知识 - PCM 浅析
4.3K0
【Android 高性能音频】Oboe 开发流程 ( Oboe 音频帧简介 | AudioStreamCallback 中的数据帧说明 )
13.5K0
IOS播放音频编码AAC_HE_V2无声音,如何解决?
5.2K0
Audio Unit录音(播放伴奏+耳返)
3.2K0
直播软件开发之Java音视频解决方案:音视频基础知识
1.2K0
Android FFmpeg系列05--音频解码与播放
1.5K0
【音视频原理】音频编解码原理 ② ( 采样值 - 本质分析 | 采样值 - 震动振幅值 | 采样值的录制与播放 | 采样值在播放设备中才有意义 | 音频采样率 | 音频采样精度 | 音频通道数 )
8700
音频基础知识
4.1K0
Android多媒体之认识声音、录音与播放(PCM)
3.8K1
影视后期丨Adobe Audition安装教程-AU软件全版本下载地址 +干货分享
3.6K0
【音视频原理】音频编解码原理 ③ ( 音频 比特率 / 码率 | 音频 帧 / 帧长 | 音频 帧 采样排列方式 - 交错模式 和 非交错模式 )
3.5K1
音频基础知识
1.7K0
Android FFmpeg系列02--音视频基础
1.1K0
iOS音频能力提升——PCM基础
2.8K0
python wave音频库使用(一)
2.2K0
QQ音乐银河音效技术实践——音乐重放效果的补偿与修饰
2K0
《除了吃鸡游戏,3D位置语音还可以用在哪里?》
1.8K0
3D位置语音,引领吃鸡游戏体验升级
4.1K0
【Android 高性能音频】AAudio 音频流 样本缓冲 相关配置 ( 通道数 | 样本格式 | 帧缓冲 | 采样率 | 每帧样本数 == 通道数 )
9280
相关推荐
科普常识:常见音频参数解析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验