开发直播app软件时需抓住重点才能“对症下药”

发布来源:云豹科技
发布人:云豹科技
2019-03-01 08:48:36

直播作为日活用户数较高的娱乐消遣方式,不仅需要从功能机制上多下功夫,还需要从用户的产品体验入手。这就涉及到了在开发直播app软件的过程中,需要注意那些与影响用户体验挂钩问题的发生,最好的解决办法就是在开发过程中直接将其“扼杀在摇篮中”。毫不夸张的讲,用户体验是判定直播app优劣的第一要素。

直播系统源码

1.秒开优化

大部分播放器都是在拿到一个完成的GOP后才可以解码播放,基于FFmpeg移植的播放器甚至需要等待音画时间戳同步后才能播放。

(1)可以改写播放器逻辑,让播放器拿到第一个关键帧后给予显示。GOP的第一帧通常都是关键帧,所以加载的数据较少可以达到“首帧秒开”。但如果直播服务器支持GOP缓存,也就意味着播放器在与服务器建立连接之后能够立即拿到数据,以节省跨地域和运营商的回源传输时间。GOP体现了关键帧的周期,即两个关键帧之间的距离,也可以认为是一个帧组的最大帧数。增加关键帧个数可以改善画质,但也会增加消耗带宽和网络负载。假如客户端的播放器下载了一个GOP,其中GOP存在一定的数据体积,这个时候播放端的网络环境不佳,就有可能无法快速在秒级以内下载完成该GOP。当然,如果无法更改播放器行为逻辑,也可以从缓存GOP改成缓存双关键帧,从而在一定程度上减少播放器加载GOP要传输的内容体积。

2)提前做好DNS解析,择取最优线路。经过预处理后,点击播放按钮可以在一定程度上提高下载性能。不仅可以围绕传输层面做到性能优化,还可以围绕客户播放行为做业务逻辑优化。两者之间可以有效地互补,为秒开提供优化空间。

直播软件源码

2.卡顿

(1)秒开过后需要面临的就是直播过程中的流畅度体验了,直播的流畅性也可以理解为是直播持续播放过程中的画面和声音视听流畅。卡顿,即播放时画面滞帧。在不考虑终端设备性能差异的情况下,针对网络传输层面的原因,客户端播放器可以考虑构建一个先进先出的缓冲队列,解码器从播放缓存队列里读取数据。缓存队列的容量通常是以时间为单位,在播放端网络不可靠时,客户端的缓存区可以起到“断网”的过渡作用。

(2)如果是直播服务器的边缘节点出现故障,同时客户端的播放器又是长连接无法收到对端的连接导致信号断开,那么客户端的缓冲区容量就算再大也没什么用了。所以就需要结合客户端的业务逻辑来进行调度,需要注意的是要客户端结合服务端,在初始化直播推流之前,合理分配质量最优的边缘接入节点。在直播推流过程中,实时监测帧率反馈等质量数据。

3.美颜滤镜

对于移动端的直播来说,美颜滤镜是必须存在的。介于当下的大环境,如果一个直播app没有美颜特效功能,那基本上可以看作是废了。所以,可以在采集完画面将数据传送给编码器之前,将数据源回调给滤镜处理程序,原始数据经过滤镜处理完成后,再送回给编码器进行编码。不仅移动端可以做体验优化,直播的流媒体服务端架构也可以一定程度上降低延迟。

直播源码

其实在开发直播app软件的过程中,优化延时卡顿等问题早已是老生常谈的问题了。但不可避免的是这些问题时常容易出现,所以在开发过程中需要尤为注意。

本文声明原创,转载请注明出处。(www.yunbaokj.com)

上一篇:浅谈直播app制作时深受“程序猿”喜爱的Linux操作系统

声明:
以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任