本发明属于网络直播技术领域,具体涉及一种音视频直播中检测客户端播放状态的系统及方法。
背景技术:
直播,作为一种实时展示方式,受到越来越多的人,特别是年轻人的追捧。直播分为文字图片直播和视频直播,传统电视台多以视频直播为主,比如新闻类的《新闻联播》、演艺类的《春节联欢晚会》等。在网络时代,多以图文直播为主,比如直播体育赛事、新闻等。在移动互联网时代,文字、图片、视频皆可进行直播,通过网络,参与者既可以作为发起直播的人,也可以作为观看或收听直播的人。直播状态是否正常,对于发起直播的人和观看或收听直播的人来说,都是至关重要的。
目前的音视频直播状态检测只是通过数据是否到达、信令是否走通来判断是否直播成功。但这种音视频直播状态检测技术对于发起直播的人来说,他们并不知道音视频直播的实际运作情况,因此这种直播状态检测技术并不是很精确。
技术实现要素:
为了解决上述的客户端直播状态检测不精确的技术问题,本发明实施例提出了一种音视频直播中检测客户端播放状态的系统及方法。
一种音视频直播中检测客户端播放状态的系统,包括:采集端、服务器和客户端,其中,采集端与服务器连接,服务器与客户端连接;
采集端在采集的音视频数据中加入状态检测信息的标记,并将加入了状态检测信息标记的音视频数据上传到服务器;
服务器检测接收到的音视频数据,如果检测到状态检测信息的标记,则将此时的图像进行解码;
客户端从服务器获取音视频数据并播放;客户端在播放音视频数据时,如果检测到状态检测信息的标记,则实时记录该状态检测信息的标记,同时进行播放区域截图,并将截图数据和状态检测信息的标记数据一起实时发送到服务器;
服务器比较对应于同一状态检测信息的标记的解码后的图像与发送的截图数据是否一致,如果不一致或在限定时间内服务器没有接收到客户端发送的截图数据和状态检测信息的标记数据,则判定客户端播放状态异常。
进一步地,所述客户端将截图数据和状态检测信息的标记数据一起实时发送到服务器时,还连同客户端的身份标识信息一起发送。
进一步地,加入状态检测信息的标记的帧为关键帧。
进一步地,状态检测信息的标记为时间戳和/或弹幕。
进一步地,在判定客户端播放状态异常时,服务器向发起音视频直播的用户反馈该客户端播放状态异常,或向服务器管理员反馈播放状态异常的客户端的身份标识信息。
一种音视频直播中检测客户端播放状态的方法,该方法包括:
采集步骤:采集端采集音视频数据;
加标记步骤:采集端定时在采集到的音视频数据中加入状态检测信息的标记;
上传步骤:经过加标记步骤后,采集端将加入了状态检测信息的标记的音视频数据上传到服务器;
第一检测步骤:服务器检测接收到的音视频数据,如果服务器检测到状态检测信息的标记,则将此时的图像进行解码;
第二检测步骤:客户端从服务器获取音视频数据,客户端在播放音视频数据时,如果检测到状态检测信息的标记,则实时记录该状态检测信息的标记,同时进行播放区域截图,并将截图数据和状态检测信息的标记数据一起实时发送到服务器;
判断步骤:服务器接收客户端发送的截图数据和状态检测信息的标记数据,并比较对应于同一状态检测信息的标记的解码后的图像与发送的截图数据是否一致,如果不一致或在限定时间内服务器没有接收到客户端发送的截图数据和状态检测信息的标记数据,则判定客户端播放状态异常。
进一步地,在第二检测步骤中,所述客户端将截图数据和状态检测信息的标记数据一起实时发送到服务器时,还连同客户端的身份标识信息一起发送。
进一步地,加入状态检测信息的标记的帧为关键帧。
进一步地,状态检测信息的标记为时间戳和/或弹幕。
进一步地,在判断步骤中,当判定客户端播放状态异常时,服务器向发起音视频直播的用户反馈该客户端播放状态异常,或向服务器管理员反馈播放状态异常的客户端的身份标识信息。
本发明实施例的有益效果:本发明实施例提出的音视频直播中检测客户端播放状态的系统及方法,相比现有技术中通过数据是否到达、接口是否调用成功等技术方案来说,能够更准确及时地检测直播过程中客户端的当前状态。
附图说明
图1是本发明实施例提出的音视频直播中检测客户端播放状态的系统的结构框图;
图2是本发明一实施例提出的音视频直播中检测客户端播放状态的方法的流程图;
图3是本发明另一实施例提出的音视频直播中检测客户端播放状态的方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于附图和以下实施例。
本发明实施例提出的音视频直播中检测客户端播放状态的系统,如图1所示,该系统包括:采集端11、服务器12和客户端13,其中,采集端11与服务器12连接,服务器12与客户端13连接。
采集端11采集音视频数据,并定时在采集到的音视频数据的关键帧中加入时间戳,从而使得音视频数据携带有状态检测信息;采集端11将加入了时间戳的音视频数据上传到服务器12。所述关键帧指的是不需要其他帧图像作参考,就可以独立进行编码的帧,亦可称为独立帧,一般是指的I帧。所述关键帧可以为一个或多个。
客户端13从服务器12下载音视频数据或由服务器12向客户端13转发音视频数据,客户端13对来自服务器12的音视频数据进行播放;客户端13在播放音视频数据时,如果检测到某帧音视频数据中加入了时间戳,则记录该时间戳数据,同时进行播放区域截图,并将截图数据和时间戳数据连同客户端13的身份标识信息一起实时发送到给服务器12,所述身份标识信息可以为ip地址或MAC地址。
服务器12检测采集端上传的音视频数据,如果检测到某帧数据中加入了时间戳时,则将加入了时间戳的该帧数据对应的图像进行解码,将解码后的图像转换为解码图像的RGB数据,关联地保存时间戳数据和解码图像的RGB数据以及客户端的身份标识信息。
服务器12等待接收客户端发送截图数据和时间戳数据以及客户端13的身份标识信息,对于服务器中保存的每个时间戳数据,服务器12如果在限定时间内接收到客户端13发送的与该时间戳数据对应的截图数据,则对该发送的截图数据进行RGB转换,转换为发送的截图的RGB数据,服务器12通过图形对比算法比较客户端13发送的截图的RGB数据和保存的解码图像的RGB数据是否一致;如果不一致或限定时间内服务器12没有接收到客户端13发送的与该时间戳数据对应的截图数据,则判定该客户端13播放音视频状态异常,并进行实时报警通知等操作,例如通知发起直播的人有客户端播放音视频状态异常,或向服务器管理员反馈播放状态异常的客户端的身份标识信息;如果一致,则判定客户端13播放音视频状态正常。
所述系统可以同时对多个客户端进行播放状态检测。
进一步地,限定时间可以由用户(例如发起直播的人)自行设定,也可以由服务器自动设定。对于每个时间戳来说,其限定时间可以相同,也可以不同。
上述实施例中,以时间戳作为状态检测信息的标记,本领域技术人员知晓,也可以采用其他时间标记的方式,或采用其他类型的标记方式,例如在某帧中加入弹幕,将弹幕作为状态检测信息的标记;或者将时间戳和弹幕一起作为状态检测信息的标记,此时时间戳和弹幕可以设置在同一帧中,也可以设置在不同帧中。
本发明实施例提出的音视频直播中检测客户端播放状态的方法,在本实施例中,以时间戳作为状态检测信息的标记。本实施例提出的方法如图2所示,该方法包括:
步骤S21、采集步骤:采集端采集音视频数据;
步骤S22、加标记步骤:采集端定时在采集到的音视频数据的关键帧中加入时间戳,从而使得音视频数据携带有状态检测信息;所述关键帧指的是不需要其他帧图像作参考,就可以独立进行编码的帧,亦可称为独立帧,一般是指的I帧。所述关键帧可以为一个或多个。
步骤S23、上传步骤:采集端将加入了时间戳的音视频数据上传到服务器;
步骤S24、第一检测步骤:服务器检测采集端上传的音视频数据,当服务器检测到某帧数据中加入了时间戳时,则将加入了时间戳的该帧数据对应的图像进行解码,将解码后的图像转换为解码图像的RGB数据,关联地保存时间戳数据和解码图像的RGB数据;
步骤S25、第二检测步骤:客户端从服务器下载音视频数据或服务器向客户端转发音视频数据,客户端对来自服务器的音视频数据进行播放;客户端在播放音视频数据时如果检测到某帧数据中加入了时间戳,则记录该时间戳数据,同时进行播放区域截图,并将截图数据和时间戳数据连同客户端的身份识别信息一起实时发送到服务器;身份识别信息可以为ip地址或MAC地址;
步骤S26、判断步骤:服务器等待接收客户端发送的截图数据和时间戳数据以及客户端的身份识别信息,对于服务器中保存的每个时间戳数据,服务器如果在限定时间内接收到客户端发送的与该时间戳数据对应的截图数据,则对该发送的截图数据进行RGB转换,转换为发送的截图的RGB数据;服务器通过图形对比算法比较该发送的截图的RGB数据和保存的解码图像的RGB数据是否一致;如果不一致或限定时间内服务器没有接收到客户端发送的与该时间戳数据对应的截图数据,则判定该客户端播放音视频状态异常,并进行实时报警通知等操作,例如通知发起直播的人有客户端播放音视频状态异常,或向服务器管理员反馈播放状态异常的客户端的身份标识信息;如果一致,则判定客户端播放音视频状态正常。
本发明另一实施例提出的音视频直播中检测客户端播放状态的方法,在本实施例中,以弹幕作为检测状态信息的标记,在音视频数据的某些帧中加入弹幕。该实施例提出的方法如图3所示,包括:
步骤S31、采集步骤:采集端采集音视频数据;
步骤S32、加标记步骤:采集端定时在采集到的音视频数据的某些帧中加入弹幕,从而使得音视频数据携带有状态检测信息;
步骤S33、上传步骤:采集端将加入弹幕的音视频数据上传到服务器;
步骤S34、第一检测步骤:服务器检测采集端上传的音视频数据,当服务器检测到某帧数据中加入了弹幕时,则将加入了弹幕的该帧数据对应的图像进行解码,将解码后的图像转换为解码图像的RGB数据,关联地保存弹幕和解码图像的RGB数据;
步骤S35、第二检测步骤:客户端从服务器下载音视频数据或服务器向客户端转发音视频数据,客户端对来自服务器的音视频数据进行播放;客户端在播放音视频数据时如果检测到某帧数据加入了弹幕,则记录该弹幕数据,同时进行播放区域截图,并将截图数据和弹幕数据连同该客户端的身份识别信息一起实时发送到服务器;所述身份标识信息可以为ip地址或MAC地址;
步骤S36、判断步骤:服务器等待接收客户端发送的截图数据和弹幕数据以及客户端的身份标识信息,对于服务器中保存的每个弹幕数据,服务器如果在限定时间内接收到客户端发送的与该弹幕数据对应的截图数据,则对该发送的截图数据进行RGB转换,转换为发送的截图的RGB数据;服务器通过图形对比算法比较该发送的截图的RGB数据和保存的解码图像的RGB数据是否一致;如果不一致或限定时间内服务器没有接收到客户端发送的与该弹幕数据对应的截图数据,则判定客户端播放视频状态异常,并进行实时报警通知等操作,例如通知发起直播的人有客户端播放音视频状态异常,或向服务器管理员反馈播放状态异常的客户端的身份标识信息;如果一致,则判定客户端播放视频状态正常。
本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上,对本发明的实施方式进行了说明。但是,本发明不限定于上述实施方式。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。