广播网络直播音频在苹果iOS和安卓Android 下卡顿间断问题排查记 录

最近接到一个县级融媒体中心客户反映,说在自己app的听广播的音频直播 苹果iOS下听直播卡顿,就是几秒钟断一下,反正听起来怪怪的。在安卓下就不卡顿。我们第一反应是推流编码不对,就联系客户先排查推流编码问题。

客户环境是使用的是windows机器,安装的 Adobe Flash Media Live Encoder 3.2 进行的推流。推流格式大概mp3 格式的。

0

开始是想改推流配置,发现 Flash Media Live Encoder 音频推流只支持mp3 格式,其他格式没有,只能这一个格式来推。而且人家这个机器不光推我们,还在推流这蜻蜓Fm,蜻蜓FM播放器都没问题,听着正常,蜻蜓Fm可能会在服务端做转码处理。咱们就要帮着一块解决下这个音频直播卡顿的问题。

0

配图推流所用的配置,最后出来的音频格式 mpga 的音频流。

0

我们看了一下其他县级融媒体中心是通过硬件编码器推流的,最终的推流格式是ADTS的,一般推流编码是设置成AAC的。

0

测试通过推流客户端端改推流格式这个走不通,需要在推流编码和cdn厂商那找找原因。

出现ios音频直播间断的直播分发是用的金山cdn,金山反馈后技术说排查不出问题,看着推流也没什么问题。那既然解决不了,就决定切到网宿cdn的直播节点试试,结果切换到网宿cdn,音频直播ios和安卓都一卡一顿了。这下表现一致了。。。

金山cdn看都切走业务了,研发跟上查了一下,说是mp3 格式推流可能支持不好,金山cdn的研发定位了问题,说过几天会修复一下,但不是立即能修复的问题,到现在也不知道修复了没有。

厂商的研发咱们也不能等,就继续联系客户测试,推荐他们搞个硬件编码器先推着,先把业务正常跑着。

县级融媒体搞来集成的硬件推流编码器以后,推流说是不卡顿了,但联系我说又出了新问题,县级融媒体中心客户反馈说广播直播时耳机听没问题,换到手机外放就声音特别小。

这问题是一个接一个,耳机听直播正常,外放听直播有杂音、声音特别小,猜测可能是声道有问题。继续排查音频直播流的声道问题。这个好测试一点,现在的大部分播放器都可以监听音频不同声道的情况,pc播放器解码时默认会优化选择声道,所以在电脑上听也没问题,但可以手工通过播放器调整使用的声道切换来测试效果。

我使用的是 potplayer 播放器,声道选择如下。

0

我测试了一下,单独听左声道,没问题,单独听右声道,也没问题。

换成立体声明显在开头的部分声音低于左右声道,而且基本没法听,都是杂音状态,播放一会才能听到一点声音。

测试广播直播流单声道输出没问题。

0

测试广播直播流双声道输出,声音明显低于左右声道的原始音量,而且声音杂乱,有问题。

0

给确认问题以后,通知县级融媒体中心现场排查,反馈说是调音台有个声道的线好像坏了,导致合成立体声时出问题了。这个专业的问题我也不太懂了,县级融媒体中心把广播信号调音台的音频线问题解决了一下,把广播的网络直播插耳机没问题,外放没有声音,有杂音的问题解决了。

写出来的解决方式其实很简单,就是要么换推流编码格式,要么换推流设备,要么在流直播服务器或者分发cdn那解决,但这个简单问题需要沟通自己的开发同事、视频服务器技术、推流厂商、客户、还要沟通cdn 厂商。从接到问题到排查出问题并解决,断断续续搞了大概一周的时间。看似简单的问题,涉及到多方沟通时,还是挺费时间的一个活。

其实中间我还想这个推荐区县融媒体换个推流软件,比如换OBS这个推流,但研究了一下,OBS不支持只推音频,推音频会推一个h264 的黑场画面给服务器,就当没有视频画面的视频来处理。而且同事说obs推流在windows机器下长时间运行会卡住,有客户用obs 推流的,但推流机器需要隔几天重启一次,也挺麻烦的,还会影响用户体验。