一种视频播放状态的检测方法及装置与流程

文档序号:12499153阅读:324来源:国知局
一种视频播放状态的检测方法及装置与流程

本发明涉及图像检测技术领域,尤其涉及一种视频播放状态的检测方法及装置。



背景技术:

视频播放器是指能播放以数字信号形式存储的视频的软件,也指具有播放视频功能的电子器件产品,一般的视频播放器由一个解码模块(Codec)和视频的显示模块(包括Texture,Surface和Render)组成。

现有的视频播放状态检测系统如图1所示,包括解码模块101,Codec来实现,实现对视频进行解码的功能;纹理贴图模块102,具体可通过Texture来实现,用于存放Codec解码结果的纹理贴图,当解码器获得新一帧的解码结果会更新贴图,并触发贴图更新回调函数。贴图显示渲染模块103,具体可通过Surface&Render来实现,表示贴图显示的地方和对贴图实施渲染;差错处理模块104,具体可通过Handle来实现,表示在检测出错误后进行的差错处理。其中,视频播放状态的检测在解码模块101中进行,在解码模块101中发现解码错误问题时,将错误反馈给差错处理模块104进行处理。

对于解码模块101对视频播放状态进行检测存在以下的问题:1、对于不同的视频编码格式,需要进行不同方式的错误诊断;2、在一个视频播放器中,通常会同时使用多个内核用以提升性能,但是不同的解码器或者解码框架,错误类型由各自定义,在整体的视频播放器控制上需要对各个内核进行多种应对处理;3、不同的播放内核在视频播放时的错误检测存在不同的缺陷,在播放网络视频错误或者格式不支持时,经常出现画面更新不正常或者黑屏的现象,但是无法给予正确的视频出错信息提示。

综上所示,现有的通过解码器对视频播放状态进行检测的实现过程较为繁琐且存在检测缺陷,会出现无法给出正确的视频出错信息的现象。



技术实现要素:

本发明提供一种视频播放状态的检测方法及装置,用以解决现有技术中通过解码器对视频播放状态进行检测的实现过程较为繁琐且存在检测缺陷的问题。

本发明实施例提供一种检测视频播放状态的方法,包括:

在视频播放线程启动时,启动第一定时器;

若在所述第一定时器的设定时间内,获取到贴图回调函数,则启动第二定时器;

若在所述第二定时器的设定时间内,未获取到贴图回调函数,则确定视频播放错误。

较佳地,所述方法还包括:

若在所述第一定时器的设定时间内,未获取到所述贴图回调函数,则确定视频打开错误。

较佳地,所述方法还包括:

若在所述第二定时器的设定时间内,获取到所述贴图回调函数,则重置所述第二定时器。

较佳地,所述在视频播放线程启动时,启动第一定时器,包括:

所述视频播放线程启动时,触发检测线程;

所述检测线程启动所述第一定时器;

若在所述第一定时器的设定时间内,获取到贴图回调函数,则启动第二定时器,包括:

所述视频播放线程在所述第一定时器的设定时间内获取到所述贴图回调函数,发送回调成功消息给所述检测线程;

所述检测线程启动所述第二定时器;

若在所述第二定时器的设定时间内,获取到所述贴图回调函数,则重置所述第二定时器,包括:

若所述视频播放线程在所述第二定时器的设定时间内,获取到所述贴图回调函数,则发送回调成功消息给所述检测线程;

所述检测线程重置所述第二定时器。

较佳地,所述方法还包括:

获取解码器的解码结果;

根据所述第一定时器的状态或所述第二定时器的状态,以及所述解码结果信息,确定所述视频的播放状态。

本发明实施例还提供一种检测视频播放状态的装置,包括:

启动单元:用于在视频播放线程启动时,启动第一定时器;

打开检测单元:用于若在所述第一定时器的设定时间内,获取到贴图回调函数,则启动第二定时器;

播放检测单元:用于若在所述第二定时器的设定时间内,未获取到贴图回调函数,则确定视频播放错误。

较佳地,所述打开检测单元,还用于:

若在所述第一定时器的设定时间内,未获取到所述贴图回调函数,则确定视频打开错误。

较佳地,所述播放检测单元,还用于:

若在所述第二定时器的设定时间内,获取到所述贴图回调函数,则重置所述第二定时器。

较佳地,所述启动单元,具体用于:

所述视频播放线程启动时,触发检测线程;

所述检测线程启动所述第一定时器;

所述打开检测单元,具体用于:

所述视频播放线程在所述第一定时器的设定时间内获取到所述贴图回调函数,发送回调成功消息给所述检测线程;

所述检测线程启动所述第二定时器;

所述播放检测单元,具体用于:

若所述视频播放线程在所述第二定时器的设定时间内,获取到所述贴图回调函数,则发送回调成功消息给所述检测线程;

所述检测线程重置所述第二定时器。

较佳地,所述装置还包括解码单元,用于:

获取解码器的解码结果;

根据所述第一定时器的状态或所述第二定时器的状态,以及所述解码结果信息,确定所述视频的播放状态。

本发明实施例提供一种视频播放状态的检测方法及装置,在视频播放线程启动时,启动第一定时器;若在第一定时器的设定时间内,获取到贴图回调函数,则启动第二定时器;若在第二定时器的设定时间内,未获取到贴图回调函数,则确定视频播放错误。本发明实施例提供的视频播放状态的检测方法及装置,通过解码结果贴图纹理刷新时的回调来进行画面更新的检测,通过定时器是否超时来判断视频是否错误播放。根据视频播放的结果来检测播放状态,提高了检测效率和实用性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术的视频播放状态检测系统结构示意图;

图2为本发明实施例提供的一种视频播放状态的检测系统结构示意图;

图3为本发明实施例提供的一种视频播放状态的检测方法流程示意图;

图4为本发明实施例提供的一种视频播放状态的检测方法流程图;

图5为本发明实施例提供一种检测视频播放状态的装置结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例提供的视频播放状态的检测方法及装置应用于可播放视频的电子设备,电子设备包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA,Personal Digital Assistant)),以及便携式、袖珍式、计算机内置的或者车载的移动装置等。

如图2所示,为本发明实施例提供的一种视频播放状态的检测系统,本发明实施例提供的视频播放状态的检测方法及装置基于所述检测系统。包括:

解码模块201,具体可通过Codec来实现,完成对视频进行解码的功能;

纹理贴图模块202,具体可通过Texture来实现,用于存放Codec解码结果的纹理贴图,当解码器获得新一帧的解码结果会更新贴图,并触发贴图更新回调函数。

贴图显示渲染模块203,具体可通过Surface&Render具体可通过,表示贴图显示的地方和对贴图实施渲染;

定时模块204,表示检测线程中的定时器,在定时器超时时发出对应的错误警告。

差错处理模块205,具体可通过Handle来实现,表示在检测出错误后进行的插错处理。

本发明实施例中的视频播放状态的检测在纹理贴图模块202贴图时进行,并增加检测线程进行状态检测,通过解码结果贴图纹理刷新时的回调来进行画面更新的检测,通过定时器是否超时来判断视频是否错误播放。播放状态检测完全根据用户的使用感受,根据视频播放正常与否作为当前播放器状态的衡量标准,而不以具体的解码问题进行分析。虽然解码出错的原因可能不同,但是反馈给播放软件的处理却是相同的。此外,部分解码错误并不影响实际观看视频,或者有些错误(例如,文件中缺少视频流)在一些解码器中并不会被有效反馈,造成不影响结果的错误被检测出来并进行差错处理,或者一些错误没有被检测出来。因此,不根据解码出错进行状态分析,而根据视频播放的结果来检测播放状态。

本发明实施例提供的视频播放状态的检测系统针对不同的解码器框架和不同的视频类型,提供统一的视频播放检测方法,提高了检测效率和实用性。

基于上述视频播放状态的检测系统,本发明实施例提供一种视频播放状态的检测方法,如图3所示,为本发明实施例提供的一种视频播放状态的检测方法流程示意图,包括:

步骤301:在视频播放线程启动时,启动第一定时器。

具体地,当播放线程打开视频源(视频文件或者在线视频流)时,发送指令给检测线程,从而触发检测线程。检测线程进入加载检测状态,并启动内部第一定时器,设置第一定时器时限为T1。

步骤302:若在第一定时器的设定时间内,获取到贴图回调函数,则启动第二定时器。

进一步地,若在第一定时器的设定时间内,未获取到贴图回调函数,则确定视频打开错误。

具体地,若视频不能正常打开,则播放线程不会输出解码结果给贴图,从而不会触发贴图回调,因而若频播放线程在第一定时器T1的设定时间内,未获取到贴图回调函数,则触发视频打开错误。

具体地,若视频打开正常,则播放线程会输出解码结果给贴图,从而触发贴图回调,因而若频播放线程在第一定时器T1的设定时间内,获取到贴图回调函数,则发送回调成功消息给所述检测线程,检测线程进入播放检测状态,启动第二定时器T2,设置第二定时器的时限为T2,而不触发视频打开错误。

例如,若第一定时器T1的设定时限为2s,若播放线程在打开视频源后的2s时间内,未获取到贴图回调函数,则确定视频打开错误。若播放线程在打开视频源后的2s获取到贴图回调函数,则发送回调成功消息给所述检测线程,检测线程启动第二定时器T2,设置第二定时器的时限为0.1s。

步骤303:若在第二定时器的设定时间内,未获取到贴图回调函数,则确定视频播放错误。

进一步地,若在第二定时器T2的设定时间内,获取到所述贴图回调函数,则重置第二定时器T2。

具体地,若视频不能正常播放,则播放线程不会输出解码结果给贴图,从而不会触发贴图回调,因而若频播放线程在第二定时器T2的设定时间内,未获取到贴图回调函数,则触发视频播放错误。

具体地,若视频播放正常,则播放线程会输出解码结果给贴图,从而触发贴图回调,因而若频播放线程在第二定时器T2的设定时间内,获取到贴图回调函数,则发送回调成功消息给所述检测线程,检测线程重置第二定时器T2,设置第二定时器的时限为T2,继续进行播放检测。

例如,第二定时器T2的设定时限为0.1s,在检测线程启动第二定时器T2之后,若播放线程在0.1s时间内,未获取到贴图回调函数,则确定视频播放错误。若播放线程在0.1s时间内获取到贴图回调函数,则发送回调成功消息给所述检测线程,检测线程重置第二定时器T2,设置第二定时器的时限为0.1s,并继续进行播放检测。

需要说明的是,第一定时器和第二定时器的定时功能也可以通过同一个定时器来实现。具体地,检测线程进入加载检测状态时,启动内部定时器,设置定时器时限为T1;则检测线程进入播放检测状态,重置定时器,并设置定时器的时限为T2。具体定时器的个数在此不做限制。

需要说明的是,本发明实施例还可以根据解码器的解码结果与贴图回调状态结合来判断视频播放状态。具体地,播放线程打开视频源时,同时获取解码器的实时解码结果,根据第一定时器的状态或第二定时器的状态,以及解码结果信息,确定视频的播放状态。通过对解码结果进行分析可以确定出视频出错的详细原因,通过解码结果贴图纹理刷新时的回调来确定画面是否更新,即视频播放的直观状态,两者结合判断可以使得视频播放状态检测更加完整无误。

在实际应用中,根据当前的视频类型,对检测结果进行相应处理。若视频源为本地文件,在确定视频打开错误后,输出格式不支持信息;在确定视频播放错误后,输出视频文件不完整信息;若视频源为在线视频流,在确定视频打开错误后,输出网络连接错误信息;在确定视频播放错误后,输出网络不稳定信息。

本发明实施例提供一种视频播放状态的检测方法,在视频播放线程启动时,启动第一定时器;若在第一定时器的设定时间内,获取到贴图回调函数,则启动第二定时器;若在第二定时器的设定时间内,未获取到贴图回调函数,则确定视频播放错误。本发明实施例提供的视频播放状态的检测方法,通过解码结果贴图纹理刷新时的回调来进行画面更新的检测,通过定时器是否超时来判断视频是否错误播放。根据视频播放的结果来检测播放状态,提高了检测效率和实用性。

本发明实施例还提供一种视频播放状态的检测方法,如图4所示,为本发明实施例提供的一种视频播放状态的检测方法流程图,包括:

步骤401:在视频播放线程启动时,启动定时器。

具体地,当播放线程打开视频源(视频文件或者在线视频流)时,发送指令给检测线程,从而触发检测线程。检测线程进入加载检测状态,并启动内部定时器,设置定时器时限为T1。

步骤402:判断在定时器的设定时间T1内,是否获取到贴图回调函数。若是,则执行步骤404,否则执行步骤403。

步骤403:定时器超时,输出视频打开错误。

具体地,若视频不能正常打开,则播放线程不会输出解码结果给贴图,从而不会触发贴图回调,因而若频播放线程在定时器的设定时间T1内,未获取到贴图回调函数,则触发视频打开错误。

步骤404:重置定时器,设置定时器的时限为T2,继续执行步骤405。

具体地,若视频打开正常,则播放线程会输出解码结果给贴图,从而触发贴图回调,因而若频播放线程在定时器T1的设定时间内,获取到贴图回调函数,则发送回调成功消息给所述检测线程,检测线程进入播放检测状态,重置定时器,设置定时器的时限为T2。

步骤405:判断在定时器的设定时间T2内,是否获取到贴图回调函数。若是,则执行步骤404,否则执行步骤406。

步骤406:定时器超时,输出视频播放错误。

具体地,若视频不能正常播放,则播放线程不会输出解码结果给贴图,从而不会触发贴图回调,因而若频播放线程在定时器的设定时间T2内,未获取到贴图回调函数,则触发视频播放错误。

具体地,若视频播放正常,则播放线程会输出解码结果给贴图,从而触发贴图回调,因而若频播放线程在定时器的设定时间T2内,获取到贴图回调函数,则发送回调成功消息给所述检测线程,检测线程重置定时器,设置定时器的时限为T2,继续进行播放检测。

基于同样的发明构思,本发明实施例还提供一种检测视频播放状态的装置,如图5所示,为本发明实施例还提供一种检测视频播放状态的装置结构示意图,包括:

启动单元501:用于在视频播放线程启动时,启动第一定时器;

打开检测单元502:用于若在所述第一定时器的设定时间内,获取到贴图回调函数,则启动第二定时器;

播放检测单元503:用于若在所述第二定时器的设定时间内,未获取到贴图回调函数,则确定视频播放错误。

较佳地,所述打开检测单元502,还用于:

若在所述第一定时器的设定时间内,未获取到所述贴图回调函数,则确定视频打开错误。

较佳地,所述播放检测单元503,还用于:

若在所述第二定时器的设定时间内,获取到所述贴图回调函数,则重置所述第二定时器。

较佳地,所述启动单元501,具体用于:

所述视频播放线程启动时,触发检测线程;

所述检测线程启动所述第一定时器;

所述打开检测单元502,具体用于:

所述视频播放线程在所述第一定时器的设定时间内获取到所述贴图回调函数,发送回调成功消息给所述检测线程;

所述检测线程启动所述第二定时器;

所述播放检测单元503,具体用于:

若所述视频播放线程在所述第二定时器的设定时间内,获取到所述贴图回调函数,则发送回调成功消息给所述检测线程;

所述检测线程重置所述第二定时器。

较佳地,所述装置还包括解码单元504,用于:

获取解码器的解码结果;

根据所述第一定时器的状态或所述第二定时器的状态,以及所述解码结果信息,确定所述视频的播放状态。

本发明实施例提供一种视频播放状态的检测装置,在视频播放线程启动时,启动第一定时器;若在第一定时器的设定时间内,获取到贴图回调函数,则启动第二定时器;若在第二定时器的设定时间内,未获取到贴图回调函数,则确定视频播放错误。本发明实施例提供的视频播放状态的检测装置,通过解码结果贴图纹理刷新时的回调来进行画面更新的检测,通过定时器是否超时来判断视频是否错误播放。根据视频播放的结果来检测播放状态,提高了检测效率和实用性。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1