iptv 缓存 linux,一种IPTV直播业务的卡顿检测方法及系统与流程

07028a940f4616ecaedb66ee7474b1a2.gif

本发明涉及流媒体技术领域,尤其涉及一种iptv直播业务的卡顿检测方法及系统。

背景技术:

随着iptv业务的发展,各大运营商越来越关注用户的使用感知,其中检测用户感知好坏的一个重要依据就是用户使用视频业务过程中的视频卡顿情况,因此iptv直播业务的卡顿检测方法的优劣对于用户的卡顿情况判断尤其重要。

目前,iptv直播业务的卡顿检测方式是通过播放器缓存流量识别技术来进行判断,通过实时计算单位时间段内流媒体播放器缓存流量和视频播放消费流量来识别用户是否卡顿,若媒体播放消费流量大于播放器缓存流量时,则判断为用户卡顿。该检测方法存在以下几个问题:

1)由于播放器缓冲区大小是由机顶盒芯片来决定,芯片的性能和机制差异也决定了播放器缓冲区大小的不同,在相同网络状态下,不同的机顶盒厂商的解决方案对卡顿的检测情况不同,也导致了卡顿判断存在误差。

2)目前卡顿检测判断的方法主要取决于芯片,而由于芯片取数灵敏度较高,只要稍微有媒体播放消费流量大于播放器缓存流量时均判断为卡顿现象,即使这个卡顿时间是毫秒级且是零星的,而这种现象对于用户来说并没有任何的视觉感知,但系统仍然判断为用户卡顿,这就和用户的实际体验不一致,也不能真实反映卡顿情况。这样的卡顿统计现象由于不精准,容易导致卡顿误判,并产生卡顿工单,浪费人力。

技术实现要素:

为了解决上述问题,本发明提出一种iptv直播业务的卡顿检测方法,包括以下步骤:

对播放器内核文件进行重载,按一定时间间隔获取视频播放的位置信息;

将当前时刻的位置信息与上一时刻的位置信息进行对比,判断是否卡顿。

进一步的,还包括:若判断发生卡顿,则记录卡顿信息,生成卡顿持续时间、卡顿间隔或卡顿频率。

进一步的,所述重载的方法为通过linux中的环境变量ld_preload调用共享库。

进一步的,所述重载的对象为机顶盒的mediaplayer标准播放库或机顶盒的芯片播放库。

进一步的,所述位置信息通过linux内部共享存储进行传输。

本发明另一目的在于提出一种iptv直播业务的卡顿检测系统,包括播放器状态监测模块、卡顿实时计算模块,其中:

播放器状态监测模块用于对播放器内核文件进行重载,按一定时间间隔获取视频播放的位置信息;

卡顿实时计算模块用于将当前时刻的位置信息与上一时刻的位置信息进行对比,判断是否卡顿。

进一步的,所述卡顿实时计算模块判断发生卡顿时,则记录卡顿信息,生成卡顿持续时间、卡顿间隔或卡顿频率。

进一步的,所述播放器状态监测模块包括内核重载模块,所述内核重载模块通过linux中的环境变量ld_preload调用共享库。

进一步的,所述内核重载模块重载的对象为机顶盒的mediaplayer标准播放库或机顶盒的芯片播放库。

进一步的,所述播放器状态监测模块与卡顿实时计算模块共享存储。

本发明的有益效果在于:本发明彻底解决了传统流量分析的误差,极大地提高了卡顿监测准确率;降低了过去大量的运算过程,使卡顿监测效率提升至秒级;卡顿准确贴近用户视觉感知,质差用户筛查更精准。

附图说明

图1是本发明处理过程示意图;

图2是本发明系统框架示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

传统视频播放卡顿检测基于缓存流量和网络流量进行,无法真实反映用户体验,为解决次问题,本发明目的在于一种iptv直播业务的卡顿检测方法,包括以下步骤:对播放器内核文件进行重载,按一定时间间隔获取视频播放的位置信息;将当前时刻的位置信息与上一时刻的位置信息进行对比,判断是否卡顿。

相应地,本发明另一目的在于提出一种iptv直播业务的卡顿检测系统,包括播放器状态监测模块、卡顿实时计算模块,其中:播放器状态监测模块用于对播放器内核文件进行重载,按一定时间间隔获取视频播放的位置信息;卡顿实时计算模块用于将当前时刻的位置信息与上一时刻的位置信息进行对比,判断是否卡顿。

本发明实施的示意图如图1、图2所示,播放器内核文件包含了视频播放的快进|快退事件、播放|暂停、当前位置、播放地址等;通过获取其中的位置信息进行判断实现卡顿的检测。在本实施例中,重载的方法为通过linux中的环境变量ld_preload调用共享库,播放器状态监测模块中的内核重载模块通过重载播放进程调用的内核api来进行拦截,从而获取播放进程传递给内核的播放相关参数以及状态。linux中调用共享库的顺序依次为$ld_preload、$ld_library_path、/etc/ld.so.cache、/lib等。其中,环境变量$ld_preload可以用于重载所有的共享库,也可以只重载某几个函数。通过在设置环境变量ld_preload来改变动态库的调用顺序,当应用程序调用共享库的函数时,都会先在libeasydemo.so中寻找该函数,如果libeasydemo.so有同名函数,就调用libeasydemo.so,否则就继续在其他路径或库寻找,以此实现对播放器的position探测,即位置信息。

因为机顶盒的种类很多,每种机顶盒播放器在进行播放时,使用的底层库不相同,于是重载库中需要适配的播放函数也各不相同,但是机顶盒使用的芯片种类总体上并不多,于是除了从顶层的mediaplayer进行重载以外,对于那些没有使用mediaplayer标准播放库的机顶盒播放器,重载其芯片播放库。根据需求内核重载模块重载的对象设置为机顶盒的mediaplayer标准播放库或机顶盒的芯片播放库,则能够自适应适配使用主流芯片的机顶盒。

在本实施例中,按1s的时间间隔对视频播放的位置信息进行检测,得到视频播放在不同时间的位置信息。卡顿检测模块将获取到的播放状态信息实时通过linux内部共享存储传递给同一个系统中的卡顿实时计算模块,不需要经过tcp或者udp的网络传输,实现了透传。卡顿实时计算模块对当前位置信息与上一个监测点的位置信息进行比较,若当前位置信息与上一个时间点的位置信息相同,可判断出用户卡顿;若当前位置信息大于上一个时间点的位置信息时,可判断出该用户恢复播放,同时计算出卡顿持续时间、卡顿间隔和卡顿频率,将结果输出至上层应用。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、rom、ram等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值