直播推流移动端播放没有声音而PC端正常

直播推流移动端播放没有声音而PC端正常

更新时间:2018-08-01 15:35:13

概述

本文主要介绍直播推流移动端播放没有声音而PC端正常的排查思路。

问题描述

一个视频在PC端播放时声音正常,在手机端播放没有声音或者说声音很小,但是给手机插上耳机后,耳机里面声音又是正常。
注:本文主要对双声道做些说明。

解决方案

声音在录制和播放时,不同空间位置采集或者回放时相互独立的音频信号。
举例:在一场演唱会中,每一个乐器的奏唱都是一个独立的声音信号发出者,许多不同的独立的声音信号从不同的空间位置以不同的强弱(声波的能量)、音调高低(声波的波峰波谷高低)传入耳朵,让大家对不同乐器所在位置产生模糊错落的感觉,这种就是现实世界中的立体声。
其中独立发声的乐器就是声源,发声的声源数量可以理解为声道数(就是同一时间,有多个不同波形的声音信号传入耳朵)。所以经常会碰到所说的单声道、双声道、立体声、立体环绕等概念,这就是声道的概念。
PC端一般默认多个扬声器,不同声道的声音信号各自独立从各扬声器发出,而手机端默认只有一个扬声器,多声道信号需要叠加之后从仅有的这一个扬声器发出。插上耳机之后,耳机是存在两个扬声器,多个声道的声音信号就各自从不同的耳机扬声器发出。
  1. 使用ffprobe工具,执行如下命令,查看该视频声道数量。
    ffprobe  -i  视频存放地址
    
    系统显示类似如下,可以得知为双声道,流ID为 0:1
  2. 执行如下命令,将音频流抽取出来为wav文件。
    ffmpeg –i  视频存放地址 -map 0:1 sound.wav
    
  3. 使用一些音频分析软件对wav文件做波形分析,Windows下可以参考CoolEdit软件,Mac下可以参考Sound Studio软件。
  4. 以Sound Studio为例,将sound.wav打开,观察声音波形(其中上波形为左声道,下波形为右声道),仔细查看可以得到左声道的波峰刚好对应右声道波谷。
  5. 再次将左右声道叠加,合成为单声道(模拟手机端外放)。
    波形如下所示,可以看到声音已经没有能量,趋于一条直线,外放表现也就是几乎听不到声音。

适用于

  • 视频直播