本申请涉及数据处理技术领域,具体而言,涉及一种码流测试方法及装置。
背景技术:
随着互联网行业的发展,越来越多的人通过互联网资源来提高学习、完成工作或是进行娱乐等。音视频资源作为互联网资源中的一种重要形式,其码流能否正常解码直接影响资源的传播成功或失败,具有重要的意义。
目前,用于判断音视频解码是否成功的方法,主要通过在解码过程中不断截取图像,对比这些图像获得的图像相似程度,以判断音视频解码是否成功。其存在数据来源单一、判断结果只能体现图像解码情况的缺陷,导致判断结果的参考价值低。
技术实现要素:
有鉴于此,本申请实施例提供了一种码流测试方法及装置,基于全面的测试数据,对待测试的待测码流进行测试,获得高参考价值测试报告。
第一方面,本申请实施例提供一种码流测试方法,该方法包括:
获取待测码流;
播放所述待测码流,采集播放所述待测码流时的播放数据,并生成播放日志;
判断所述播放数据中是否存在故障数据;
基于所述播放日志和所述判断的结果生成测试报告。
可选地,在本申请实施例中,采集播放所述待测码流时的播放数据具体为:按照预设的采集周期,采集播放所述待测码流时的播放数据。
其中,所述采集周期根据所述待测码流的时长信息设定。
可选地,在本申请实施例中,所述播放数据包括图像数据、音频数据和心跳数据。
进一步可选地,所述图像数据包括播放所述待测码流时的多张截图,所述音频数据中包括多个音频数据包。
进一步可选地,在本申请实施例中,判断所述播放数据中是否存在故障数据具体为:
对所述多张截图进行对比,获得与所述多张截图对应的多个相似度,判断所述多个相似度中是否存在低于预设范围的所述相似度,若存在,则判定存在图像故障数据。
判断所述多个音频数据包中是否存在空数据包,若存在,则判定存在音频故障数据。
判断所述心跳数据中,是否存在停止运行数据或应用程序无响应数据,若存在,则判定存在心跳故障数据。
可选地,在本申请实施例中,基于所述播放日志和所述判断的结果生成测试报告具体为:
当所述判断的结果中,存在所述图像故障数据、所述音频故障数据和所述心跳故障数据中的任意一种,则在测试报告中显示未通过测试。
将所述播放日志保存于所述测试报告中。
可选地,在本申请实施例中,当所述判断的结果中存在所述心跳故障数据时,在所述测试报告中显示设备故障。
第二方面,本申请实施例还提供了一种码流测试装置,所述装置包括:
获取模块,用于获取待测码流。
处理模块,用于播放所述待测码流并采集播放所述待测码流时的播放数据,以及生成播放日志。
判断模块,用于判断所述播放数据中是否存在故障数据。
生成模块,用于基于所述播放日志和所述判断的结果生成测试报告。
可选地,在本申请实施例中,所述处理模块,还用于按照预设的采集周期,采集播放所述待测码流时的播放数据。其中,所述采集周期根据所述待测码流的时长信息设定。
可选地,在本申请实施例中,所述播放数据包括图像数据、音频数据和心跳数据。
本申请实施例还提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述码流测试方法。
由此,本申请实施例所提供的码流测试方法及装置,该方法通过获取待测码流,然后播放所述待测码流,采集播放所述待测码流时的播放数据,并生成播放日志,然后判断所述播放数据中是否存在故障数据,基于所述播放日志和所述判断的结果生成测试报告。通过该方法,能够便捷地对待测码流进行测试,获得高参考价值的测试报告。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本申请实施例提供的码流测试方法的一种流程示意图;
图2为本申请实施例提供的码流测试装置的一种结构示意框图。
图标:100-码流测试装置;10-获取模块;20-处理模块;30-判断模块;40-生成模块。
具体实施方式
为了使本领域的技术人员更好地理解发明的技术方案,下面结合具体实施方式对本申请作进一步的详细说明。
随着互联网行业的发展,越来越多的人通过互联网来提高学习、完成工作或是进行娱乐。音视频成为互联网资源传播的重要形式,音视频能否正常播放影响着互联网资源的传播,具有重要的意义。
目前,大部分音视频解码判断方法,通过人工方法,逐一播放被测试的一视频,通过人工的视觉和听觉的感知,判断播放的各个音视频是否解码成功。这样的方法不仅耗时耗力,还容易出现“漏检”的情况。
有一部分音视频解码判断方法通过自动化手段来判断音视频解码是否成功,但是这些方法,在获取视频中的画面的对比相似度后,仅仅依靠画面的对比相似度,就判断解码是否成功。这样存在的问题是,判断依据单一,当该单次数据的采集或者相似度计算出问题时,判断结果随之出现问题,导致判断结果参考价值不高甚至无法进行判断的后果。并且,对于判断的过程没有记录,不能追溯判断的过程。当需要查找与分析解码失败的视频的解码失败原因时,该方法不能提供有用信息、没有参考价值。
基于上述问题,本申请实施例提供了一种码流测试方法及装置。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本申请实施例提供的方法,通过程序编码和指令实现,用于实现该码流测试方法的编码程序及指令,以封装的、exe格式的软件工具为载体,安装到电子设备上。通过在电子设备上运行该软件工具,即可进行码流测试。
本申请实施例中的电子设备可以是需要进行码流测试的任意终端,例如但不限于,智能手机、个人电脑(personalcomputer,pc)、投影仪、机顶盒、笔记本电脑、监控设备、服务器等具备音视频解码及处理能力的计算机设备。
请结合参阅图1,为本申请实施例提供的码流测试方法的一种流程示意框图。所应说明的是,本申请实施例提供的码流测试方法不以图1及以下所述的具体顺序为限制。在本申请实施例中,该码流测试方法可以通过以下步骤实现:
s10,获取待测码流。
本申请实施例中,所述待测码流可以通过各种方式获得,例如,可以通过与服务器通信,进行服务器用户名和服务器密码的验证,获取服务器中的码流路径,再根据该路径,读取待测试的码流并生成json(javascriptobjectnotation)格式的码流文件。再例如,待测码流在移动硬盘上,则可以通过将该移动硬盘插到播放或者投影设备,将码流测试软件工具安装到电子设备上,码流测试软件工具,基于电子设备与播放或者是电子设备与投影设备之间建立的通信连接,获取待测码流。上述播放或者投影设备,能够自动生成与待测码流对应的挂载路径,再根据与待测试码流对应的挂载路径,读取移动硬盘中的全部音视频格式的码流,再生成json(javascriptobjectnotation)格式的码流文件,生成能够显示出全部音视频格式码流的列表。
应当进一步说明的是,json(javascriptobjectnotation)文件是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于javascriptprogramminglanguage,standardecma-2623rdedition-december1999的一个子集。json采用完全独立于语言的文本格式,但是也使用了类似于c语言家族的习惯(包括c、c++、c#、java、javascript、perl、python等)。这些特性使json成为理想的数据交换语言。所以,码流文件为json(javascriptobjectnotation)格式的文件,能够更为便捷地满足该软件工具与服务器、播放设备或者是投影设备之间的通信和信息交互,避免信息交互出现错误进而影响码流测试,保证码流测试结果的准确和高参考价值。
在本实施例中,上述列表是用户可以看到并进行选择操作的。用户可以根据自己的意愿和需求点选出需要测试的码流,或是对列表中的码流进行自由勾选组合,码流测试软件工具则将这些被选出的码流作为待测码流,从而对待测码流进行码流测试。
应当进一步说明的是,在本申请实施例中,需要将预先编写好的、带有apk签名的安装包(androidpackage,apk),安装到待测码流所在的播放或者投影设备上。从而能够支持码流测试软件工具对上述播放或者投影设备的接口进行调用。这些接口包括播放器接口、视频截图接口、音频数据采集接口、心跳接口。以支持播放或者投影设备采集播放数据并将播放数据传输到码流测试软件工具的。apk签名是能够通过播放或者投影设备认证的,以保证播放或者投影设备允许接口被调用。
可以理解的,带有待测码流的移动硬盘也可以直接插到电子设备上,电子设备能够直接读取该移动硬盘上的待测码流,从而运行码流测试软件工具对待测码流进行码流测试。
应当说明的是,本申请实施例中,当上述的待测码流的获取是基于服务器时,安装和运行码流测试的电子设备为支持dlna(digitallivingnetworkalliance,数字生活网络联盟)的设备。安装有码流测试软件工具的电子设备在运行时,该软件工具基于http通信协议与服务器、播放设备或者是投影设备进行通信和信息交互。
在本申请实施例中,应当理解的是,互联网资源中的音视频码流存在着一些待测码流包含有大量音视频数据、占用内存很大的情况,这些数据量大待测码流在进行码流测试时会比较困难,特别一些测试方法需要将待测码流加载到测试设备上再进行测试,码流测试基本不能进行。在本申请实施例中,通过将用于实现该码流测试方法的编码程序及指令,封装成软件工具并安装到电子设备上,该软件工具基于http通信协议与服务器、播放设备或者是投影设备进行通信,从而获取待测码流。这样的设计,是的本申请所提供的码流测试方法,即便是遇到数据量较大的待测码流,也能轻松进行码流测试,生成具有参考价值的测试报告。
s20,播放所述待测码流,采集播放所述待测码流时的播放数据,并生成播放日志。
在本申请实施例中,所述待测码流的播放,是通过运行所述软件工具,执行所述软件工具中的编码程序,调用与所述电子设备通信连接的播放设备或者是投影设备,通过播放设备或者是投影设备来播放所述待测码流,并通过播放设备或者是投影设备的接口来获取所述播放数据。
在本申请实施例中,采集播放所述待测码流时的播放数据可以通过以下步骤实现:
按照预设的采集周期,采集播放所述待测码流时的播放数据。
其中,所述采集周期根据所述待测码流的时长信息设定。
应当说明的是,不同的待测试的待测码流的文件大小和时长信息通常不同,例如大部分的电影音视频的待测码流的时长信息为2小时,而一些短小音视频的待测码流的时长信息为20分钟。本申请实施例中,采集周期是根据所述待测码流的时长信息而设定的,例如采样频率为10次每秒时,采样周期为0.1s,本申请不对采样周期的具体取值进行限定,可根据实际应用场景调整采样周期。例如,当待测试的待测码流时长较长时,适当地延长采集周期,从而保证采集的播放数据不会过多,从而导致采集播放数据的接口被频繁调用而出错,或是在对播放数据数据进行分析处理时,占用的运行内存过大而导致处理设备崩溃。这样的设计能够避免上述情况可能带来的无法生成测试报告或是测试报告中数据错误,进而使测试报告没有参考价值。
s30,判断所述播放数据中是否存在故障数据。
s40,基于所述播放日志和所述判断的结果生成测试报告。
可选地,在本申请实施例中,所述播放数据包括图像数据、音频数据和心跳数据。
进一步可选地,在本申请实施例中,所述图像数据包括播放所述待测码流时的多张截图,所述音频数据中包括多个音频数据包。
进一步可选地,在本申请实施例中,判断所述播放数据中是否存在故障数据具体为:
对所述多张截图进行对比,获得与所述多张截图对应的多个相似度,判断所述多个相似度中是否存在低于预设范围的所述相似度,若存在,则判定存在图像故障数据。若不存在,则判定不存在图像故障数据。
判断所述多个音频数据包中是否存在空数据包,若存在,则判定存在音频故障数据。若不存在,则判定不存在音频故障数据。
判断所述心跳数据中,是否存在停止运行(crash)数据或应用程序无响应(anr)数据,若存在,则判定存在心跳故障数据。若不存在,则判定不存在心跳故障数据。
进一步地,当所述判断的结果中存在所述心跳故障数据时,在所述测试报告中显示设备故障。
在本申请实施例中,所述心跳故障数据能够体现出,播放所述待测码流的播放设备或者投影设备是否发生了运行故障,例如停止运行(crash)或应用程序无响应(anr)。通过这样的设计,本申请在进行待测码流的测试时,区分了是待测码流的解码和播放或投影设备的设备运行数据,这两类数据包含了导致未通过解码的两类原因。并且在测试报告中记录下具体的故障信息,由此,可以通过报告直观地判断出,是由于待测码流的解码出现了问题导致未通过解码,还是播放或投影设备的设备运行出现故障,进而导致的未通过解码。
在本申请实施例中,可选地,相似度的预设范围,例如可以是但不限于8%-10%。在实际应用中,该预设范围可以根据实际应用场景的需要进行调整。
可选地,在本申请实施例中,基于所述播放日志和所述判断的结果生成测试报告具体为:
当所述判断的结果中,存在所述图像故障数据、所述音频故障数据和所述心跳故障数据中的任意一种,则在测试报告中显示未通过测试。否则,在测试报告中显示通过测试。
将所述播放日志保存于所述测试报告中。
应当说明的是,本申请实施例在所述测试报告中,所述播放日志中,记载有待测码流的名称和判断过程中数据处理记录,包括各种故障数据出现的时间、该判定所依据的播放数据,判定所依据的播放数据具体到:故障数据是图像故障数据、音频故障数据或者是心跳故障数据。当故障数据是图像故障数据时,记录下低于预设阈值的相似度所对应的截图。当故障数据是心跳故障数据时,记录下是停止运行(crash)数据或应用程序无响应(anr)数据。由此,本申请实施例提供的码流测试方法所生成的测试报告,不仅包括了是否通过解码测试的信息提示,还会对测试过程中的具体数据进行记录,从而便于相关操作人员,基于该测试报告进行问题追溯,提高了测试结果的参考价值。
在本申请实施例中,利用每个待测码流名作为日志压缩包的名称,每个待测码流名可以包括有码流路径,从而进一步便于相关操作人员,基于该测试报告进行问题追溯,以及进一步提高了测试结果的参考价值。
请结合参阅图2,为本申请实施例提供的码流测试装置100的一种方框示意图。
所述装置包括:
获取模块10,用于获取待测码流。
处理模块20,用于播放所述待测码流并采集播放所述待测码流时的播放数据,以及生成播放日志。
判断模块30,用于判断所述播放数据中是否存在故障数据。
生成模块40,用于基于所述播放日志和所述判断的结果生成测试报告。
可以理解的是,本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。
本申请实施例还提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述码流测试方法。
由此,本申请实施例所提供的码流测试方法及装置,该方法通过获取待测码流,然后播放所述待测码流,采集播放所述待测码流时的播放数据,并生成播放日志,然后判断所述播放数据中是否存在故障数据,基于所述播放日志和所述判断的结果生成测试报告。通过该方法,能够便捷地对待测码流进行测试,获得高参考价值的测试报告。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。