直播ing,你遇到过花屏吗?

2020-11-06 19:10:32 浏览数 (1)

前言

有些朋友在使用腾讯云直播时,出现花屏,影响了客户体验。特别是最近有朋友做游戏直播,对局过程中花屏,真的是让观众十分着急。难道是直播的打开方式不对?

是的,你没猜错,跟打开方式有很大关系。

视频糊了不用说学习吃鸡技巧了,怕连对方站在哪个位置、捡个雷、背包里换个装备,都看不清。那在使用腾讯云直播的过程中,怎么避免花屏产生呢?

问题分析及解决方案

首先来看下什么是花屏,相信大家并不陌生。是指播放过程中,图像杂乱并出现大面积的点状、片状、马赛克等异常颜色干扰图。那花屏是什么原因导致的呢?

可以按影响面分为全屏花屏和局部花屏,如下。

当然如果使用腾讯云直播,不用担心局部花屏的问题啦。腾讯云直播采用TCP传输,不会数据丢失,弱网环境下也有重试机制保障数据的完整性。这里为介绍产生花屏的原因,就一起介绍下局部花屏吧。

1、全屏花屏

全糊掉的画面,想想都……

1)正常情况下,是码率设置过低,比如OBS推流做如下设置:

要输出分辨率为1920*1080的全高清画面,码率设置为200kbps(码率是指编码器每秒产生的视频数据大小 ),编码器此时能做的事情就是降低画质,就会导致大面积的马赛克。很多主播用默认的高分辨率直播,有的会使用3000以上分辨率。嗯,你可能是需要看电影,如此高的分辨率需要消耗多少码率……花屏、马赛克也是情理之中的。

那如何解决呢?通常情况下,1080P选择1.5M-2M码率比较适合(Action!这里不是要求你所有都设置这个数值,可以自己对比测试)。如下为设置低码率和正常码率的花屏对比:

2)另外一种情况是,视频参数问题。 比如主播正在直播吃鸡激烈的对局,在主播炫技的同时想让观众一起清晰体验开镜远程击败敌人的快感,想让观众看到更高清的画质,推流端修改了视频参数(如从720P修改1080P),此时观众客户端用于解码的SPS&PPS如果没有重新获取的话,就会出现整个画面花屏的情况。这种花屏将一直持续下去,除非重新获取视频参数,画面不会随着时间而自动恢复。

2、局部花屏

1)丢失参考帧

单纯传输视频画面,视频量非常大,为了方便视频传输和存储,需将冗余的信息在发送端去掉,到接收端后恢复出来,从而大大减小视频数据的大小,其中H.264就是视频压缩标准之一。H.264编码的视频画面包括 I帧、P帧、B帧三种帧类型。其中I 帧是关键帧,可以理解为是这一帧画面的完整保留;B 帧是双向预测编码图像帧,用于记录本帧与前后帧的差别;P 帧是前向预测编码帧,记录的是这一帧跟之前的 I帧(或P帧)的差别。I 帧由于是帧内压缩,解码时只需要本帧数据就可以播放。而B 帧,一旦丢失了I 帧或者后面的P 帧,则会解码失败,而P 帧一旦丢失了前面的I/B/P 帧,也会导致解码失败。所以在 I帧正常 丢失P帧时,画面的大部分区域是正常的,只有局部花屏。如下:

什么情况下会丢失参考帧?

网络不好 - 如果推流端数据堆积严重,会主动丢弃帧;编码后数据传送丢失或无法传送也会丢帧;重传时,播放端接收I帧延迟,也会主动丢弃已过时的I帧

系统内存低 - 队列已满无法处理更多帧数据

不过现在都通过TCP来传输,当然如果你自建了直播平台,想了解如何优化,可以使用自适应重传策略与动态缓冲技术来优化。在极端的情况下丢帧时,可以考虑将一整个 GOP(Group of picture,图像组)全部丢掉,即:一旦丢了一个 I 帧,那么下一个 I 帧之前的所有视频帧,均丢弃掉,这样即可有效避免播放器端产生解码花屏。同时,在弱网情况使系统能够自适应增加I帧比例,减少GOP值,使得即使丢掉整个GOP也不会产生太大的卡顿。

2)网络环境不好

网络不好会导致丢帧,上面已经说明。

小结

经过上面的分析,应该对产生花屏的原因有一定了解了吧?当然避免方法可以结合对应的问题参考使用。下次如果遇到花屏问题,可以先自己动手尝试解决下,再也不用担心吃鸡直播花屏啦。走走走,先开一把吧。

0 人点赞