本发明专利技术公开了一种基于主动丢帧的画面裂屏保护方法,包括:获取推流端视频包存放队列和推流端音频包存放队列的积压速率;推流端根据所述积压速率,判断是否出现裂屏信号;推流端识别到出现的裂屏信号后,主动丢弃因裂屏产生的错误数据和错误帧;推流端主动丢帧完成后,向采集端发送通知信息,所述采集端重新采集视频、音频数据;推流端将所述视频、音频数据推流至流媒体服务器。本发明专利技术通过软件方法解决直播场景下画面裂屏的问题,效果相较基于硬件保护的方式更好;且因为无需对硬件进行修改,成本较低;无需添加静电防护的金属屏蔽网,也不会影响到直播设备的其他功能。不会影响到直播设备的其他功能。不会影响到直播设备的其他功能。
【技术实现步骤摘要】
一种基于主动丢帧的画面裂屏保护方法、装置和存储介质
[0001]本专利技术属于直播视频画面传输领域,尤其是一种基于主动丢帧的画面裂屏保护方法、装置和存储介质。
技术介绍
[0002]目前视频传输主要采用的是FFmpeg软件推流技术,要分为以下几步:
①
SDI/HDMI输入源采集视频和音频原始数据;
②
编码器将视频和音频数据编码成指定编码格式的编码包(如视频数据编码成H264编码包,音频数据编码成AAC编码包);
③
FFmpeg推流端初始化两个队列用于存放视频编码包和音频编码包;
④
FFmpeg推流端根据设置的推流协议(如RTMP)将视频编码包和音频编码包按时间戳封装成指定格式(如FLV)推流到指定的流媒体服务器上;
⑤
用户在拉流端用ffplay或vlc播放器从流媒体服务器拉流观看视频。
[0003]直播设备的输入源主要有SDI和HDMI两种,当直播设备受到静电干扰时就很容易造成SDI或HDMI输入源信号不稳定,触发裂屏信号。裂屏信号会导致直播设备采集到的视频包或音频包出错或丢失,这些错误或丢失的数据包会导致软件FFmpeg推流端数据紊乱无法按照完整的一帧画面将数据推流出去,当FFmpeg推流端把本来两帧画面对应的数据交错成一帧画面推流出去时,就会出现拉流播放端画面裂屏的问题。
[0004]目前解决画面裂屏的方法主要依赖于硬件上做保护,比如在输入源侧做硬件防静电保护,或者通过SDI或HDMI输入源硬件上识别到裂屏信号后自动复位。但是基于硬件上做保护来解决画面裂屏的方法存在以下三个缺点:一是添加防静电的金属屏蔽网可能会影响到直播设备的其他功能,例如对于内部含有无线拨号模块上网的直播设备,金属屏蔽网的存在会严重影响直播设备的无线网络信号;二是硬件保护无法杜绝所有的裂屏信号;三是硬件做修改,成本较高。
技术实现思路
[0005]本专利技术的目的在于通过软件方法解决直播场景下画面裂屏的问题。
[0006]本专利技术所采取的技术方案是:本专利技术提供了一种基于主动丢帧的画面裂屏保护方法,其特征在于,包括:
[0007]获取推流端视频包存放队列和推流端音频包存放队列的积压速率;
[0008]推流端根据所述积压速率,判断是否出现裂屏信号;
[0009]推流端识别到出现的裂屏信号后,主动丢弃因裂屏产生的错误数据和错误帧;
[0010]推流端主动丢帧完成后,向采集端发送通知信息,所述采集端重新采集视频、音频数据;
[0011]推流端将所述视频、音频数据推流至流媒体服务器。
[0012]进一步地,所述推流端视频包在t至t1时间段的积压速率计算方法为:
[0013]V
video
=(|S
video
{t1}
‑
S
video
{t}|)/(|t1‑
t|)
[0014]其中,V
video
表示视频数据包积压速率,软件上循环获取t时刻推流端视频包存放队
列Q
video
的数据包个数为S
video
{t},t1时刻推流端视频包存放队列Q
video
的数据包个数为S
video
{t1};
[0015]所述推流端音频包在t至t1时间段的积压速率计算方法为:
[0016]V
audio
=(|S
audio
{t1}
‑
S
audio
{t}|)/(|t1‑
t|)
[0017]其中,V
audio
表示音频数据包积压速率,软件上循环获取t时刻推流端音频包存放队列Q
audio
的数据包个数为S
audio
{t},t1时刻推流端视频包存放队列Q
audio
的数据包个数为S
audio
{t1}。
[0018]进一步地,所述根据所述积压速率,判断是否出现裂屏这一步骤,包括:设置出现裂屏信号对应的视频或音频数据包积压速率M,当所述或所述大于M时,则认为出现裂屏。
[0019]进一步地,所述因裂屏产生的错误数据和错误帧,包括或积压的视频或音频数据包。
[0020]进一步地,所述主动丢帧通过释放积累了错误数据和错误帧的内存的方式实现。
[0021]进一步地,所述推流端采用FFmpeg软件推流技术进行推流。
[0022]进一步地,采集端重新采集视频、音频数据,所述采集端的输入源包括SDI输入源、HDMI输入源。
[0023]进一步地,所述推流端根据设置的推流协议将视频编码包和音频编码包按时间戳封装成指定格式推流到指定的流媒体服务器。
[0024]另一方面,本专利技术提供了一种计算机装置,其特征在于,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行任一项所述的基于主动丢帧的画面裂屏保护方法。
[0025]另一方面,本专利技术提供了一种计算机可读存储介质,其中存储用处理器可执行的程序,其特征在于,所述处理器可执行的程序在由处理器执行时用于执行任一项所述的基于主动丢帧的画面裂屏保护方法。
[0026]本专利技术的有益效果是:通过软件方法解决直播场景下画面裂屏的问题,效果相较基于硬件保护的方式更好;且因为无需对硬件进行修改,成本较低;无需添加静电防护的金属屏蔽网,也不会影响到直播设备的其他功能。
附图说明
[0027]图1为画面裂屏的实际效果演示图;
[0028]图2为本专利技术实施例用FFmpeg软件推流的流程;
[0029]图3为本专利技术实施例用FFmpeg软件按RTMP协议推流时的封装过程;
[0030]图4为本专利技术实施例软件裂屏保护算法的流程图。
具体实施方式
[0031]为了对所述关系型数据表组织结构的技术方案与优点进行更加完整、清晰地描述,下面将结合实例以及附图对该数据结构进行分析与说明。显然,该实例仅用于解释本专利技术,并不用于限定本专利技术。
[0032]随着互联网技术和直播行业的飞速发展,各类应用对视频的画面质量要求越来越高。但实际的直播场景中存在各种视频画质问题,如卡顿、音视频不同步、马赛克等,更严重
的甚至出现画面裂屏、闪屏和黑屏。本专利技术实施例中,探讨的是如何通过软件方法解决直播场景下画面裂屏的问题,画面裂屏的表现为一帧完整的视频画面分裂成两个画面呈现在屏幕上,如图1所示。
[0033]目前的直播场景中,大多采用FFmpeg软件推流技术,图2为本专利技术实施例用FFmpeg软件推流的流程,主要分为以下几步:
[0034]S101.SDI/HDMI输入源采集视频和音频原始数据;
[0035]S102.编码器将视频和音频数据编码成指定编码格式的编码包(如视频数据编码成H264编本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于主动丢帧的画面裂屏保护方法,其特征在于,包括:获取推流端视频包存放队列和推流端音频包存放队列的积压速率;推流端根据所述积压速率,判断是否出现裂屏信号;推流端识别到出现的裂屏信号后,主动丢弃因裂屏产生的错误数据和错误帧;推流端主动丢帧完成后,向采集端发送通知信息,所述采集端重新采集多媒体数据流;推流端将所述视频、音频数据推流至流媒体服务器。2.根据权利要求1所述的一种基于主动丢帧的画面裂屏保护方法,其特征在于,所述推流端视频包在t至t1时间段的积压速率计算方法为:V
video
=(|S
video
{t1}
‑
S
video
{t}|)/(|t1‑
t|)其中,V
video
表示视频数据包积压速率,软件上循环获取t时刻推流端视频包存放队列Q
video
的数据包个数为S
video
{t},t1时刻推流端视频包存放队列Q
video
的数据包个数为S
video
{t1};所述推流端音频包在t至t1时间段的积压速率计算方法为:V
audio
=(1S
audio
{t1}
‑
S
audio
{t}|)/(1t1‑
t|)其中,V
audio
表示音频数据包积压速率,软件上循环获取t时刻推流端音频包存放队列Q
audio
的数据包个数为S
audio
{t},t1时刻推流端视频包存放队列Q
audio
的数据包个...
【专利技术属性】
技术研发人员:廖贵金,周志雄,
申请(专利权)人:广东中兴新支点技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。