音视频播放疑难杂症分析和解决 :序篇

2020-11-12 14:25:38 浏览数 (2)

问题背景:

音视频相较于其他业务开发,门槛比较高的一个原因开发过程遇到问题比较多,而且每个问题背后都需要一定的理论基础和丰富的调试经验的才能分析出来。有些音视频开发小白,遇到一些诸如视频卡顿、声画不同步等问题完全一脸懵逼,不知道从何处进行分析。我曾经在海康开发维护过一段时间的线上服务和基础库,一天基本需要排查十几个这种疑难杂症,而且这些问题表现形式非常灵活,有些是黑屏、花屏,有些直接播放端卡死发热。究其背后原因,有些是用户使用产品的姿势不对如配置摄像机的参数错误,有些是网络传输原因,有些是播放引擎解码渲染原因等。

总结下来,这些问题虽然表型形式五花八门,背后的原因也各不相同。把这些问题一一讲解清楚,是不现实的也是没必要的。因为我们只要掌握一套科学的分析方法,触类旁通,遇到任何问题都按照这种思路分析,基本都能刨根到底,最后拿出好的解决方案进行解决。一款好的产品不一定必须是技术最高端,界面最酷炫,有时稳定性和可用性压倒一切,对于视频监控领域,产品low点都没事,但是一定要稳定。如果刚好在热点事件敏感时期,你的摄像机丢失录像或者播放卡顿了,会带来非常大的用户损失,一些严重问题甚至会带来法律上的风险。

本系列就是想把我以前给客户排查问题以及现在我们开发音视频系统遇到的实际问题作为案例,然后分析原因,拓展其中的理论,给出好的解决思路,让你在音视频开发过程中有章法可寻。当然这些问题不一定和你遇到的问题一样,希望更多掌握解决这种问题的科学方法,其次希望你多交流,我多补充,成为一个比较有含金量的系列。

本系列预告内容:

这里罗列出我平时遇到最多的音视频开发问题,后面包括但不限于这些问题,会给大家分享下这些问题的表现形式,原因和解决思路。如果你还想让分析一些其它问题,欢迎你发消息和邮件,在能力之内会加入到推送计划。

1. 播放失败问题,起播黑屏或者loading;

2. 播放卡顿、花屏问题;

3. 视频声音不同步,俗称的声画同步问题;

4. 回放的拖动不准问题;

5. 播放有杂音,回音问题;

6. 直播的高标清切换问题;

7. 倍速播放实现不准问题;

8. 播放首开画面慢问题;

9. 播放过程中的跳秒,画面回退问题;

10. 其它问题(待续,欢迎补充);

解决问题的几个原则:

上面我罗列了各种各样的播放问题,其实这些问题只是表现的播放端上,给用户带来了非常糟糕的用户体验,但是这些问题不一定是播放端造成的,有些是在传输过程造成的,有些发生在服务端,甚至有些问题出现在视频源端也就是编码端。为了后面分析问题,我这里放一张音视频系统经典的架构图,无论是直播还是点播,也无论你的音视频系统应用在在线游戏、远程教育还是视频监控,基本都是可以用该图进行表示,所以掌握这个图很重要,这也是分析这些问题的基本基本思路:

这些问题排查要掌握三点:

1. 一定要分过程和阶段来分析,播放端出问题只是排查的起点但是不是问题的终点,到底哪个阶段有问题,需要找到音视频流的输入和输出,一步步来。

2. 要还原到每个阶段输入时的状态,比如为了证明不是播放端的问题,那在码流刚送入播放端就把文件码流写下来,用专业工具分析和播放,如果写的文件播放都有问题,那一定证明问题不在播放端自己,应该在送入之前。可以拿出证据,让涉及其它阶段的人看。如果播放和分析没问题,但是在自己播放客户端就有问题,那肯定是出在自己解码或者渲染阶段,需要你自己进一步的定位和分析。

3. 借助专业工具以他山之石来帮助自己定位,音视频针对不同的封装、编码、传输协议有很多专业的工具,要善于用这些开源工具来为自己问题定位找到答案,甚至花点时间给自己写写分析工具,这也是音视频开发人员值得做的。

音视频问题分析下来就是核心三点:分阶段分析法、还原前一阶段原始数据法、让专业工具干专业的事情法。只要把上面三点灵活应用在自己问题分析排查阶段,基本都是能找到问题的原因和答案的。

问题现象:

下面通过视频和图片给大家展现一些常见播放,让大家有个直观感受,便于后面这个系列的开展。下面的图片和视频都来自实际客户的反馈和开发一线。

起播失败导致黑屏

播放花屏马赛克现象

播放卡顿问题

播放抖动 现象

演示延时和声画同步

0 人点赞