直播推流之后,PC端播放正常,移动端发现没有声音的可能原因

简介: 本文主要介绍直播推流成功之后,在PC端播放正常,在移动端(比如手机)播放会没有声音,但是插上耳机发现又是正常的,这种现象的可能原因。

基本概念:
声音在录制和播放时候,在不同空间位置采集或者回放时候相互独立的音频信号;举例来说:在一场演唱会中,每一个乐器的奏唱都是一个独立的声音信号发出者,这许多不同的独立的声音信号从不同的空间位置,以不同的强弱(声波的能量)、音调高低(声波的波峰波谷高低)传入我们的左右耳,让我们对不同乐器所在位置产生模糊错落的感觉,这种就是现实世界中的立体声,其中独立发声的乐器就是声源,发声的声源数量可以理解为声道数(就是同一时间,有多个不同波形的声音信号传入人耳)。所以我们经常会碰到说,单声道,双声道,立体声,立体环绕等概念,这里讲的就是声道的概念
PC端一般默认多个扬声器,不同声道的声音信号各自独立从各扬声器发出;而手机端默认只有一个扬声器,多声道信号需要叠加之后从仅有的这一个扬声器发出(插上耳机之后,耳机是存在两个扬声器的,多个声道的声音信号就各自从不同的耳机扬声器发出了)

1、首先查看该视频声道数量:所用工具ffprobe
ffprobe -i http://ali-hangzhou.oss-cn-hangzhou.aliyuncs.com/soundtest.mp4

如下图,我们可以得知为双声道,流ID为0:1

image.png

2、接下来,将音频流抽取出来为wav文件
ffmpeg –i http://ali-hangzhou.oss-cn-hangzhou.aliyuncs.com/soundtest.mp4 -map 0:1 sound.wav
3、我们使用一些音频分析软件对wav做波形分析,windows下可以用cooledit,mac下可以参考sound studio
以sound studio为例,将sound.wav打开,观察其中声音波形(其中上波形为左声道,下波形为右声道),仔细查看可以得到左声道的波峰刚好对应右声道波谷
image.png
我们再次将左右声道叠加,合成为单声道(模拟手机端外放),波形如下:
image.png
image.png
从上图可以看到,声音已经没有能量,趋于一条直线,外放表现也就是几乎听不到声音了

相关文章
|
10月前
|
数据采集 监控 数据管理
数据治理之道:大数据平台的搭建与数据质量管理
【10月更文挑战第26天】随着信息技术的发展,数据成为企业核心资源。本文探讨大数据平台的搭建与数据质量管理,包括选择合适架构、数据处理与分析能力、数据质量标准与监控机制、数据清洗与校验及元数据管理,为企业数据治理提供参考。
334 1
|
人工智能 自然语言处理 机器人
Jina AI 发布中英和英德双语 8K 向量模型,魔搭社区开源最佳实践!
在 Jina Embeddings 英语向量模型突破百万下载后,今天,Jina AI正式开源了两款双语向量模型:中英双语(Chinese-English)和英德双语(English-German)向量模型,这也是全球首次推出支持 8K 双语文本的开源向量模型。
|
2月前
|
机器学习/深度学习 人工智能 数据可视化
基于YOLOv8的100种中药分类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目基于YOLOv8实现100种中药材分类识别,配备完整数据集、训练代码与PyQt5图形界面,支持图片、视频及摄像头检测,提供开箱即用的中药智能识别系统。
基于YOLOv8的100种中药分类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
|
4月前
|
canal 关系型数据库 MySQL
MySQL 自动同步开源工具
本文介绍了几种开源工具用于实现 MySQL 数据库的自动同步。
|
11月前
|
Java
【Azure Developer】com.azure:azure-identity jar包版本从1.2.0 升级到1.12.2 版本之后报错
在将 `com.azure:azure-identity` 的 jar 包版本从 1.2.0 升级到 1.12.2 后出现错误,错误信息表明存在方法未找到的问题。分析显示这是由于依赖管理错误导致,需要调整 classpath 确保使用兼容版本的依赖包。当前项目中 msal4j-1.11.0.jar 与 azure-identity-1.12.2 不兼容。
157 0
|
Java 应用服务中间件 API
如何爬出Kotlin协程死锁的坑?
本文将会剖析 Kotlin 协程死锁的根本原因, 以及如何彻底地从坑中爬出来。
|
自然语言处理 数据处理
浅析命名实体识别(NER)的三种序列标注方法
简述序列标注 序列标注(Sequence Tagging)是NLP中最基础的任务,应用十分广泛,如分词、词性标注(POS tagging)、命名实体识别(Named Entity Recognition,NER)、关键词抽取、语义角色标注(Semantic Role Labeling)、槽位抽取(Slot Filling)等实质上都属于序列标注的范畴。
|
JavaScript 前端开发 安全
推荐几个 vue后台框架
推荐几个 vue后台框架
288 0
|
分布式计算 监控 测试技术
Spark的错误处理与调试技巧
Spark的错误处理与调试技巧
|
运维 自然语言处理 Cloud Native
SOFAStack 的下一个五年
下一个五年,让我们保持初心,一起把 SOFAStack 社区建设得更开放、更有趣!
SOFAStack 的下一个五年