掌桥专利:专业的专利平台
掌桥专利
首页

视频传输测试方法、装置、系统及终端

文献发布时间:2023-06-19 16:20:42



技术领域

本申请涉及网络测试技术领域,尤其涉及一种视频传输测试方法、装置、系统及终端。

背景技术

随着移动通信技术的快速发展,第五代移动通信技术(5th generation mobilenetworks,5G网络)逐渐应用到人们的日常生活和工作中,其推动了数字经济社会发展以及传统行业数字化转型升级,尤其是对于传统行业的变革产生了巨大的影响。其中,网络摄像机(Internet ProtocolCamera,IPC)的视频监控业务就是5G行业应用的代表之一。

目前,在视频监控业务的多路视频传输场景中,当多路监控摄像头产生的视频流在同一网络中并发传输时,常常会发生多路视频流的流量峰值叠加现象,即发生帧内编码图像帧(Intra-coded picture,I帧)碰撞现象,造成网络堵塞、丢包等,使得已规划的网络带宽不足,进而产生视频卡顿等问题,影响视频监控业务运行。可见,为确保视频监控业务上线后长期、无卡顿运行,在视频监控业务所在网络(如5G网络)上线前,对该网络的视频传输能力进行测试验证是非常有必要的。因此,如何有效对视频监控业务所在网络(如5G网络)的视频传输能力进行测试验证,是一个亟待解决的问题。

发明内容

本申请实施例提供了一种视频传输测试方法、装置、系统及终端,在测试多路视频传输所在的网络时,可以控制部分或全部的视频流中的I帧发生碰撞,模拟I帧碰撞随机变化的场景,从而在测试过程中覆盖多种I帧碰撞场景,进而有效测试出当前的网络的视频传输能力。

第一方面,本申请实施例提供了一种视频传输测试方法,应用于包含有第一终端和第二终端的系统,,该方法可以包括:第一终端获取N路视频流,N为大于1的正整数;第一终端控制N路视频流经第一网络并发传输至第二终端,其中,第一终端在N路视频流传输时控制N路视频流中M路视频流中的I帧发生碰撞,2≤M≤N;第二终端接收N路视频流的视频帧,以及确定N路视频中每路视频流的第一指标,第一指标用于表征第一网络的视频传输能力。由此,本方案中,在测试多路视频传输所在的网络时,可以控制部分或全部的视频流中的I帧发生碰撞,从而模拟监控业务上线后多路视频流并发传输时随机发生I帧碰撞的场景,使得在测试过程中可以覆盖多种实际应用场景,进而有效测试出预先配置的网络的视频传输能力。

在一种可能的实现方式中,该方法还可以包括第一终端根据第二指标,I帧统计数据和预设的测试参数,确定是否进行I帧碰撞;其中,第二指标为第一终端最新接收的第二终端发送的指标,第二指标包括M路视频流发生I帧碰撞的实时概率,I帧统计数据用于统计N路视频流中每路视频流中与I帧相关的数据,测试参数包括M路视频流的路数和期望M路视频流中的I帧发生碰撞的概率。由此,确定是否需要进行I帧碰撞。示例性的,可以将第二指标,I帧统计数据和测试参数,输入至碰撞确定模型,以确定是否进行I帧碰撞;其中,该碰撞确定模型可以使用高斯过程模型、神经网络模型、支持向量机等,对历史测试数据中的测试数据进行训练得到;此外,碰撞确定模型也可以为偏差型函数模型,比例型函数模型,混杂型函数模型,或者其他的数学函数模型。

在一种可能的实现方式中,I帧统计数据包括以下一项或多项:N路视频流中每路视频流已发送的I帧的数量,或者,在前次发生I帧碰撞时,N路视频流中每路视频流已发送的I帧的数量。

在一种可能的实现方式中,第一终端控制N路视频流中M路视频流中的I帧发生碰撞,可以包括:第一终端从N路视频流中筛选M路视频流,以及同时发送M路视频流中的I帧。由此实现对M路视频流中I帧的碰撞控制。示例性的,在控制M路视频流中的I帧发生碰撞时,若第一终端确定M路视频流中每路视频流的当前待发送的视频帧均为I帧,则可以同时发送M个I帧;若第一终端确定M路视频流中至少一路视频流的当前待发送的视频帧不为I帧,则可以暂停发送i个I帧,以及在收集到M个I帧后,同时发送M个I帧,1≤i<M,其中,在暂停发送i个I帧时,可以发送M-i个非I帧。

在一种可能的实现方式中,第一终端从N路视频流中筛选M路视频流,可以包括:第一终端根据视频帧统计数据和第三指标,确定N路视频流中每路视频流的权重值,视频帧统计数据用于统计N路视频流中每路视频流中视频帧的数据,第三指标为第一终端最新接收的第二终端发送的指标,其中,第三指标包括N路视频流中每路视频流的传输指标;第一终端根据N路视频流中每路视频流的权重值,从N路视频流中随机筛选出M路视频流。由此随机筛选出M路视频流。示例性的,可以将和视频帧统计数据,输入至权重确定模型,进而得到N路视频流中每路视频流的权重值。其中,权重确定模型可以使用高斯过程模型、神经网络模型、支持向量机等,对历史测试数据中的测试数据进行训练得到;此外,权重确定模型也可以为偏差型函数模型,比例型函数模型,混杂型函数模型,或者其他的数学函数模型,

在一种可能的实现方式中,第三指标包括以下一项或多项:帧率,或者,时延抖动;视频帧统计数据包括以下一项或多项:N路视频流中每路视频流已发送的视频帧的总数,或者,N路视频流中每路视频流中的I帧间隔。

在一种可能的实现方式中,第一指标可以包括以下一项或多项:帧率,时延,时延抖动,码率,丢包率,帧峰均比,渲染帧数,或者,丢帧率。

第二方面,本申请实施例提供了一种视频传输测试方法,应用于第一终端,该方法可以包括:获取N路视频流,N为大于1的正整数;控制N路视频流经第一网络并发传输至第二终端,其中,在N路视频流传输时控制N路视频流中M路视频流中的I帧发生碰撞,2≤M≤N,以测试第一网络的视频传输能力。

在一种可能的实现方式中,该方法还可以包括:根据第二指标,I帧统计数据和预设的测试参数,确定是否进行I帧碰撞;其中,第二指标为第一终端最新接收的第二终端发送的指标,第二指标包括M路视频流中I帧发生碰撞的实时概率,I帧统计数据用于统计N路视频流中每路视频流中与I帧相关的数据,测试参数包括M路视频流的路数和期望M路视频流中的I帧发生碰撞的概率。

在一种可能的实现方式中,I帧统计数据包括以下一项或多项:N路视频流中每路视频流已发送的I帧的数量,或者,在前次发生I帧碰撞时,N路视频流中每路视频流已发送的I帧的数量。

在一种可能的实现方式中,控制N路视频流中M路视频流中的I帧发生碰撞,可以包括:从N路视频流中筛选M路视频流,以及同时发送M路视频流中的I帧。

在一种可能的实现方式中,从N路视频流中筛选M路视频流,可以包括:根据视频帧统计数据和第三指标,确定N路视频流中每路视频流的权重值,视频帧统计数据用于统计N路视频流中每路视频流中视频帧的数据,第三指标为第一终端最新接收的第二终端发送的指标,其中,第三指标包括N路视频流中每路视频流的传输指标;根据N路视频流中每路视频流的权重值,从N路视频流中随机筛选出M路视频流。

在一种可能的实现方式中,第三指标包括以下一项或多项:帧率,或者,时延抖动;视频帧统计数据包括以下一项或多项:N路视频流中每路视频流已发送的视频帧的总数,或者,N路视频流中每路视频流中的I帧间隔。

在一种可能的实现方式中,第一指标包括以下一项或多项:帧率,时延,时延抖动,码率,丢包率,帧峰均比,渲染帧数,或者,丢帧率。

在一种可能的实现方式中,第二终端用于基于接收到的N路视频流的视频帧,确定N路视频中每路视频流的第一指标,第一指标用于表征第一网络的视频传输能力。

第三方面,本申请实施例提供了一种视频传输测试装置,该装置可以包括:通信模块和处理模块;其中,通信模块可以用于获取N路视频流,N为大于1的正整数;处理模块可以用于控制N路视频流经第一网络并发传输至第二终端,其中,在N路视频流传输时控制N路视频流中M路视频流中的I帧发生碰撞,2≤M≤N,以测试所述第一网络的视频传输能力。

在一种可能的实现方式中,处理模块,还可以用于:根据第二指标,I帧统计数据和预设的测试参数,确定是否进行I帧碰撞;其中,第二指标为第一终端最新接收的第二终端发送的指标,第二指标包括M路视频流中I帧发生碰撞的实时概率,I帧统计数据用于统计N路视频流中每路视频流中与I帧相关的数据,测试参数包括M路视频流的路数和期望M路视频流中的I帧发生碰撞的概率。

在一种可能的实现方式中,I帧统计数据包括以下一项或多项:N路视频流中每路视频流已发送的I帧的数量,或者,在前次发生I帧碰撞时,N路视频流中每路视频流已发送的I帧的数量。

在一种可能的实现方式中,处理模块,还可以用于:从N路视频流中筛选M路视频流,以及同时发送M路视频流中的I帧。

在一种可能的实现方式中,处理模块,还可以用于:根据视频帧统计数据和第三指标,确定N路视频流中每路视频流的权重值,视频帧统计数据用于统计N路视频流中每路视频流中视频帧的数据,第三指标为第一终端最新接收的第二终端发送的指标,其中,第三指标包括N路视频流中每路视频流的传输指标;根据N路视频流中每路视频流的权重值,从N路视频流中随机筛选出M路视频流。

在一种可能的实现方式中,第三指标包括以下一项或多项:帧率,或者,时延抖动;视频帧统计数据包括以下一项或多项:N路视频流中每路视频流已发送的视频帧的总数,或者,N路视频流中每路视频流中的I帧间隔。

在一种可能的实现方式中,第一指标包括以下一项或多项:帧率,时延,时延抖动,码率,丢包率,帧峰均比,渲染帧数,或者,丢帧率。

在一种可能的实现方式中,第二终端可以用于基于接收到的N路视频流的视频帧,确定N路视频中每路视频流的第一指标,该第一指标可以用于表征第一网络的视频传输能力。

第四方面,本申请实施例提供了一种视频传输测试系统,包含第一终端和第二终端,第一终端用于执行第一方面中所提及的第一终端执行的方法,第二终端用于执行第一方面中所提及的第二终端执行的方法。

第五方面,本申请实施例提供了一种终端,包括:

至少一个存储器,用于存储程序;

至少一个处理器,用于调用存储器存储的程序,以执行第一方面中提供的方法,或者执行第二方面中提供的方法。

第六方面,本申请实施例提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第一方面中提供的方法,或者执行第二方面中提供的方法。

第七方面,本申请实施例提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第一方面中提供的方法,或者执行第二方面中提供的方法。

第八方面,本申请实施例提供了一种芯片,包括至少一个处理器和接口;

至少一个处理器通过接口获取程序指令或者数据;

至少一个处理器用于执行程序行指令,以实现第一方面中提供的方法,或者执行第二方面中提供的方法。

附图说明

图1a是本申请实施例提供的一种应用场景示意图;

图1b是本申请实施例提供的一种测试场景示意图;

图2是本申请实施例提供的一种终端的硬件结构示意图;

图3是本申请实施例提供的一种终端的设置界面的示意图;

图4是本申请实施例提供的一种多路视频流的传输速率的示意图;

图5是本申请实施例提供的一种测试过程中视频流数据的传输过程示意图;

图6是本申请实施例提供的一种视频传输测试方法的流程示意图;

图7是本申请实施例提供的一种从N路视频流中筛选M路视频流的步骤示意图;

图8是本申请实施例提供的另一种视频传输测试方法的流程示意图;

图9是本申请实施例提供的一种视频传输测试装置的结构示意图;

图10是本申请实施例提供的一种芯片的结构示意图。

具体实施方式

为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行描述。

在本申请实施例的描述中,“示例性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。

在本申请实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个终端是指两个或两个以上的终端,多路视频流是指两路或两路以上的视频流。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

首先,介绍本方案中提供的一种应用场景。

图1a是本申请实施例提供的一种应用场景示意图。如图1a所示,在监控业务中,监控摄像头(111,112,113)采集的视频数据可以依次经路由设备121,客户前置设备(Customer Premise Equipment,CPE)13,基站14,核心网15和路由设备122,并发传输至播放终端16,这样用户就可以在播放终端16上查看到监控摄像头(111,112,113)采集到的视频数据。在监控业务上线前,往往需要预先配置监控摄像头(111,112,113)与播放终端16之间的网络;本方案中,预先配置的网络可以由路由设备(121,122),客户前置设备(CustomerPremise Equipment,CPE)13,基站14和核心网15组成。而为了确保监控业务上线后能够稳定运行,则需要对监控业务中预先配置的网络进行测试,以基于测试结果对网络进行调整,例如,增加网络带宽等等。

可以理解的是,本方案中,对于预先配置的网络并不对其进行具体限定,该预先配置的网络可以实现图1a中监控摄像头(111,112,113)与播放终端16之间的通信即可以。在一个例子中,预先配置的网络可以包括比图1a所示的网络中更多或更少的网元。此外,图1a中所示的监控摄像头的数量并不局限于3个,也可以为其他数量,例如2个,4个等等,在此不做限定。

接下来,介绍本方案中提供的一种测试场景。

图1b是本申请实施例提供的一种测试场景示意图。如图1b所示,在测试图1a中预先配置的网络的视频传输能力时,可以利用终端171模拟图1a中监控摄像头(111,112,113)发送视频的场景,例如终端171可以模拟并发发送3路视频流。之后,终端171发送的视频流可以经预先配置的网络传输至终端172。然后,终端172可以对接收到的视频流进行解码,确定出终端171发送的每路视频流的传输测试指标,其中,该传输测试指标可以用来表征预先配置的网络的视频传输能力,其可以为帧率,时延,时延抖动,码率,丢包率,帧峰均比,渲染帧数,或者,丢帧率等等。示例性的,若每路视频流的丢包率均较高,则可以表明预先配置的网络的视频传输能力较差,因此需要对预先配置的网络进行调整。

可以理解的是,终端171除了可以模拟图1a中监控摄像头(111,112,113)发送视频的场景之外,其也可以获取监控摄像头(111,112,113)采集的视频数据,以及将监控摄像头(111,112,113)采集的视频数据经预先配置的网络发送至终端172。例如,在测试图1a中预先配置的网络的视频传输能力时,可以将终端171设置于路由设备121与监控摄像头(111,112,113)之间,从而使得终端171可以获取到监控摄像头(111,112,113)采集的视频数据。

需说明的是,本方案中,终端171在模拟图1a中多路视频传输场景时,可以在N路视频流传输时控制N路视频流中的M路视频流的I帧进行碰撞,从而模拟监控业务上线后多路视频流并发传输时随机发生I帧碰撞的场景,使得在测试过程中可以覆盖多种实际应用场景,进而有效测试出预先配置的网络的视频传输能力。本方案中,2≤M≤N,其中,M和N均为正整数。

可以理解的是,本方案中所描述的预先配置的网络可以为有线网络(Wirednetwork)或无线网络(wireless network)。例如,该网络可以为局域网(local areanetworks,LAN),也可以为广域网(wide area networks,WAN)(例如互联网)。该网络可使用任何已知的网络通信协议来实现,上述网络通信协议可以是各种有线或无线通信协议,诸如以太网、通用串行总线(universal serial bus,USB)、火线(firewire)、全球移动通讯系统(global system for mobile communications,GSM)、通用分组无线服务(generalpacket radio service,GPRS)、码分多址接入(code divisionmultiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA)、长期演进(long termevolution,LTE)、新空口(new radio,NR)、蓝牙(bluetooth)、无线保真(wirelessfidelity,Wi-Fi)等通信协议。应理解,本方案的网络还可以是未来通信网络例如6G的网络等等。

本方案中,终端(171,172)可以为手机,平板电脑,数码相机,个人数字助理(personal digitalassistant,PDA),可穿戴设备,智能电视,华为智慧屏,树莓派(Raspberry Pi),工业派(IndustriPi)等。终端(171,172)的示例性实施例包括但不限于搭载iOS、android、Windows、鸿蒙系统(Harmony OS)或者其他操作系统的电子设备。上述电子设备也可以是其他电子设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(laptop)等。本申请实施例对电子设备的类型不做具体限定。

下面介绍本方案中提供的一种终端的硬件结构示意图。该终端可以为图1b中所示的终端(171,172)。

图2是本申请实施例提供的一种终端的硬件结构示意图。如图2所示,该终端可以包括至少一个处理器201,该至少一个处理器201可支持终端实现本方案中所提供的方法。

该处理器201可以是通用处理器或者专用处理器。例如,处理器201可以包括中央处理器(central processing unit,CPU)和/或基带处理器。其中,基带处理器可以用于处理通信数据,CPU可以用于实现相应的控制和处理功能,执行软件程序,处理软件程序的数据。示例性的,当处理器201归属于图1b所示的终端171时,则处理器201可以控制N路视频流经预先配置的网络并发传输至图1b中的终端172,其中,该处理器201可以在N路视频流传输时控制N路视频流中M路视频流中的I帧发生碰撞;当处理器201归属于图1b所示的终端172时,则处理器201可以接收到的图1b中终端171发送的视频流的视频帧进行解码,以及确定出每路视频流的传输测试指标,如码率,帧率,丢包率等等,其中,该传输测试指标可以表征预先配置的网络的视频传输能力。

进一步的,终端还可以包括收发单元203,用以实现信号的输入(接收)和输出(发送)。例如,收发单元203可以包括收发器或射频芯片。收发单元203还可以包括通信接口。示例性的,当收发单元203归属于图1b所示的终端171时,则收发单元203可以接收或者获取N路视频流,也可以向终端172发送N路视频流,亦可以接收终端172发送的指标等;当收发单元203归属于图1b所示的终端172时,收发单元203可以接收到的图1b中终端171发送的视频流的视频帧,也可以将终端172确定的部分或全部视频传输测试指标发送至终端171等。

可选地,终端中可以包括一个或多个存储器202,其上存有程序(也可以是指令或者代码),程序可被处理器201运行,使得处理器201执行本方案中描述的方法。可选地,存储器202中还可以存储有数据。可选地,处理器201还可以读取存储器202中存储的数据(例如,预存储的视频流的数据,预存储的视频编码数据等等),该数据可以与程序存储在相同的存储地址,该数据也可以与程序存储在不同的存储地址。

处理器201和存储器202可以单独设置,也可以集成在一起,例如,集成在单板或者系统级芯片(system on chip,SOC)上。

关于终端在上述各种可能的设计中执行的操作的详细描述可以参照下文本方案提供的方法的实施例中的描述,在此就不再一一赘述。

接下来,基于图1b所示的测试场景和图2所示的终端的硬件结构,对本方案的测试过程进行详细说明。为叙述方便,下文将“预先配置的网络”称之为“待测网络”。

(1)设置测试参数

在图1b所示的测试场景下,测试人员可以设置测试参数。本方案中,测试参数可以包括期望发生I帧碰撞的视频流的路数和概率。例如,测试人员可以设置10路视频流中有5路发生I帧碰撞,且发生I帧碰撞的概率为10%,等等。

在一个例子中,测试人员可以在终端171上设置测试参数,也可以在其他的终端上设置测试参数。当测试人员在其他的终端上设置测试参数时,其他的终端可以通过有线网络或无线网络将测试人员设置的测试参数传输至终端171上。示例性的,测试人员可以通过终端171上的人机交互界面设置测试参数,其中,测试人员可以但不限于通过触控设置或声控设置等。例如,如图3所示,在终端171的显示屏幕的显示界面上,可以显示测试参数的设置界面31,在设置界面31上可以显示各个测试参数,如测试的视频流总数,期望发生I帧碰撞的视频流的路数,发生I帧碰撞的概率,测试时长等等;此时,测试人员可以设定测试视频流的总数为10路,设定期望发生I帧碰撞的视频流的路数为5路,设定发生I帧碰撞的概率为50%,测试时长为3分钟。

可以理解的是,测试参数也可以由系统根据经验值自动生成。例如,当待测网络的带宽为500Mbps时,经验值可以为测试视频流的总数为8路,期望发生I帧碰撞的视频流的路数为3路,发生I帧碰撞的概率为10%,则当待测网络的带宽为500Mbps时,系统则可以主动生成测试参数,此时测试参数即为:测试视频流的总数为8路,期望发生I帧碰撞的视频流的路数为3路,发生I帧碰撞的概率为10%。此外,也可以根据测试人员使用其他的网络的历史数据自动生成,在此不做限定。

(2)下发测试指令

在图1b所示的测试场景下,当测试参数设定完毕后,即可以下发测试指令。本方案中,测试指令可以手动下发,也可以自动下发。当测试指令为手动下发时,测试人员可以通过终端171上的人机交互界面下发测试指令;例如,继续参阅图3,测试人员将测试参数设置完毕后,可以点击设置界面31中的“确认”按键,即可以下发测试指令。当测试指令为自动下发时,测试指令可以由软件程序周期性的下发,例如,如果需要每天进行测试,则可以每天发送一次测试指令等;其中,用于下发测试指令的软件程序可以安装于终端171上。

可以理解的是,测试指令是用于测试待测网络的视频传输能力的指令。当测试指令下发后,终端171则可以接收到测试指令,以及开始进行测试。

(3)开始测试

在图1b所示的测试场景下,终端171接收到测试指令后,则可以开始测试工作。

在测试时,终端171可以获取N路视频流;其中,N的数值可以基于测试参数确定,其代表了测试的视频流的总的路数。本方案中,N路视频流可以是预先存储于终端171上的,也可以由终端171根据预先设置的视频编码参数生成,其中,视频编码参数可以包括编码格式,码率,帧率,I帧间隔等等。此外,N路视频流也可以是预先存储于其他的终端上,亦可以由其他的终端根据预先设置的视频编码参数生成,在此不做限定。可以理解的是,当N路视频流由其他的终端存储或生成时,终端171可以向其他的终端发送请求,以请求其他的终端将N路视频流发送至终端171。

终端171获取到N路视频流后,可以将N路视频流通过待测网络并发传输至终端172。终端172接收到N路视频流的视频帧后,可以对每路视频流的视频帧解码,进而确定出每路视频流的传输测试指标,其中,该传输测试指标可以表征待测网络的视频传输能力。本方案中,传输测试指标可以包括帧率,时延,时延抖动,码率,丢包率,帧峰均比,渲染帧数,或者,丢帧率等等。在一个例子中,并发传输可以理解为同一时刻多路视频流同时传输。

本方案中,终端171在向终端172发送N路视频流时,可以控制M路视频流中的I帧发生碰撞,其中,M路视频流中的M即为测试参数中期望发生I帧碰撞的视频流的路数,M路视频流为N路视频流中的多路视频流,M≤N。

其中,终端171传输N路视频流的过程中,可以先判断当前是否需要进行I帧碰撞。如果需要进行I帧碰撞,终端171则可以从N路视频流中筛选出M路视频流,然后,再同时发送M路视频流中的I帧,进而实现M路视频流中的I帧发生碰撞。下面对判断过程、筛选过程和发送过程分别进行描述。

a、判断是否进行I帧碰撞

本方案中,终端172在接收到N路视频流的视频帧时,可以确定出I帧碰撞指标,然后再将I帧碰撞指标发送至终端171。之后,终端171在接收到终端172发送的I帧碰撞指标后,可以根据其最新接收到的I帧碰撞指标,I帧统计数据和测试参数,确定是否需要进行I帧碰撞。

在一个例子中,I帧碰撞指标可以包括M路视频流发生I帧碰撞的实时概率。示例性的,终端172可以对其接收的N路视频流的视频帧进行抓包,然后生成传输速率图,并由该传输速率图确定出是否发生了I帧碰撞,最后由已接收的I帧的个数和M路视频流中发生碰撞的I帧的个数,即可以确定出I帧碰撞的实时概率。例如,开始测试的时间为上午9:00,当前时间为上午9:30,若在9:00至9:30这一时间段内,M路视频流中发生碰撞的I帧个数为10个,已接收的I帧个数为100个,则在当前时间(即上午9:30)M路视频流中I帧碰撞的实时概率为10%。对于传输速率图,可以参阅图4,如图4所示,若未发生I帧碰撞时,每路视频流中的I帧均可以每100ms传输1000bytes;而在发生I帧碰撞时,则在发送I帧碰撞的时刻,如30s时,每100ms传输的I帧的数据量将成倍增加,例如,若两路视频流中的I帧发生碰撞,则此时每100ms传输的I帧的数据量为2000bytes;因此,可以基于图4中的传输速率图中I帧的峰值变化情况,确定是否发生I帧碰撞,以及发送I帧碰撞的视频流的路数。

I帧统计数据可以用于统计N路视频流中每路视频流中与I帧相关的数据。示例性的,I帧统计数据可以包括:N路视频流中每路视频流已发送的I帧的数量,或者,在前次发生I帧碰撞时,N路视频流中每路视频流已发送的I帧的数量。可以理解的是,终端171在发送N路视频流中每路视频流的视频帧时,可以统计其发送的I帧的数量,例如,以第一路视频流为例,在发送第一路视频流的视频帧时,每发送一个I帧,终端171则将统计的该第一路视频流的I帧数量增加一个。

测试参数可以包括M路视频流的路数和期望M路视频流中的I帧发生碰撞的概率。

在一个例子中,在确定是否进行I帧碰撞时,终端171可以将其最新接收的I帧碰撞指标,I帧统计数据和测试参数,输入至预先配置的碰撞确定模型中,然后,再基于碰撞确定模型的输出结果进行确定。例如,当碰撞确定模型输出的输出结果为进行I帧碰撞,则可以确定此时需要进行I帧碰撞。示例性的,碰撞确定模型可以使用高斯过程模型、神经网络模型、支持向量机等,对历史测试数据中的测试数据进行训练得到。此外,碰撞确定模型也可以为偏差型函数模型,比例型函数模型,混杂型函数模型,或者其他的数学函数模型,在此不做限定。

可以理解的是,在判断出需要进行I帧碰撞时,则可以从N路视频流中筛选出M路视频流,即执行下文所描述的“从N路视频流中筛选出M路视频流”的过程。如果判断出不需要进行I帧碰撞,则可以不需要从N路视频流中筛选出M路视频流。

b、从N路视频流中筛选出M路视频流

本方案中,终端171可以接收终端172发送的N路视频流中每路视频流的传输指标,其中,该传输指标是由终端172在接收到N路视频流中每路视频流的视频帧时所确定。进一步地,终端171在接收到终端172发送的N路视频流中每路视频流的传输指标后,可以根据其最新接收到的N路视频流中每路视频流的传输指标和视频帧统计数据,确定N路视频流中每路视频流的权重值;其中,N路视频流中每路视频流的传输指标可以包括帧率,时延抖动等等,视频帧统计数据可以包括N路视频流中每路视频流已发送的视频帧的总数,N路视频流中每路视频流中的I帧间隔等等。最后,终端171可以根据N路视频流中每路视频流的权重值,从N路视频流中随机筛选出M路视频流;例如,利用随机加权算法进行筛选等等。需说明的是,本方案中,在筛选M路视频流时,终端171所使用的N路视频流中每路视频流的传输指标,可以为终端172确定出的N路视频流中每路视频流的传输测试指标中的部分指标或全部指标,在此不做限定。

可以理解的是,在确定N路视频流中每路视频流的权重值时,终端171可以将其最新接收到的N路视频流中每路视频流的传输指标和视频帧统计数据,输入至权重确定模型,进而得到N路视频流中每路视频流的权重值。示例性的,权重确定模型可以使用高斯过程模型、神经网络模型、支持向量机等,对历史测试数据中的测试数据进行训练得到。此外,权重确定模型也可以为偏差型函数模型,比例型函数模型,混杂型函数模型,或者其他的数学函数模型,在此不做限定。在一个例子中,权重确定模型可以为以下所示的数学函数模型,其中,该数学函数模型为:

ω

其中,ω

可以理解的是,在从N路视频流中筛选出M路视频流后,即可以执行下文所描述的“同时发送M路视频流中的I帧”的过程。

c、同时发送M路视频流中的I帧

从N路视频流中筛选出M路视频流后,终端171可以对M路视频流中的I帧进行碰撞控制。在一个例子中,终端171可以根据H264,H265等视频压缩编码格式对视频流中视频数据包结果的定义,分别判断M路视频流中每路视频流中待发送的视频帧是否属于I帧。其中,若M路视频流中当前待发送的视频帧均为I帧,则将这些I帧同时向终端172发送,以使这些I帧发生碰撞。若M路视频流中当前待发送的视频帧中至少有一个不属于I帧,则将不属于I帧的视频帧发送至终端172,以及暂停发送属于I帧的视频帧;此外,当M路视频流中当前待发送的视频帧均属于I帧时,则将这些I帧同时发送至终端172。在一个例子中,暂停发送属于I帧的视频帧,可以是将该I帧对应的视频流的进程置为阻塞状态。

(4)结束测试

在测试时长结束后,即可以结束测试工作。此时,终端172可以显示出测试结果。此外,测试人员也可以从终端172中导出测试数据,然后对测试数据进行分析,以确定待测网络的视频传输能力。

为便于理解,下面以并发传输3路视频流,控制2路视频流发生I帧碰撞为例,并结合图5对上文所描述的测试过程中的部分测试过程分步进行解释说明。

步骤A,终端171中的视频编码模块1711或者视频文件读取模块1712可以获取3路视频流。其中,视频编码模块1711可以根据测试前已设置好的视频编码参数生成视频流;视频文件读取模块1712可以根据测试前已设置好的本地文件路径读取视频流。

步骤B,终端171中每路视频流均持有自己对应的数据获取模块,即数据获取模块17131,17132,17133。其中,数据获取模块(17131,17132,17133)可以从视频编码模块1711或视频文件读取模块1712中获取视频流,并将获取到的视频流保存至自己的数据缓冲区中。

步骤C,终端171中的I帧碰撞控制模块1714可以从每路视频流的数据获取模块中获取到视频帧,以及从指标接收模块1715中获取到终端172发送的指标,该指标可以为上文中的I帧碰撞指标(如2路视频流中I帧发生碰撞的实时概率等),3路视频流中每路视频流的传输指标(如帧率,时延抖动等)。之后,I帧碰撞控制模块1714则可以判断是否进行I帧碰撞。如果不需要进行I帧碰撞,则直接发送每路视频流的视频帧。如果需要进行I帧碰撞,则从3路视频流中筛选出2路视频流;然后,同时发送2路视频流中的I帧。详见上文有关描述,在此就不再一一赘述。

步骤D,终端171中每路视频流均持有自己对应的数据发送模块,即数据发送模块17161,17162,17163。其中,每路视频流对应的数据发送模块均可以从I帧碰撞控制模块1714中获取到所需发送的视频帧。之后,数据发送模块(17161,17162,17163)可以使用标准监控视频流传输协议(如:RTSP、RTMP等),以及经待测网络将视频帧发送至终端172。

步骤E,终端172中每路视频流均持有自己对应的数据接收模块,即数据接收模块17211,17212,17213。每路视频流的数据接收模块可以运行标准监控视频流传输协议,以接收来自对应数据发送模块的视频帧,并将视频帧保存至自己的数据缓冲区中。

步骤F,终端172中每路视频流均持有自己对应的解码渲染模块,即解码渲染模块17221,17222,17223。每路视频流的解码渲染模块可以从对应的数据接收模块的数据缓冲区中读取视频帧,然后进行解码、渲染视频画面等。

步骤G,终端172中每路视频流均持有自己对应的指标生成模块,即指标生成模块17231,17232,17233。在传输测试过程中,指标生成模块可以实时生成传输测试指标,如帧率,时延,时延抖动,码率,丢包率,帧峰均比,渲染帧数,或者,丢帧率等等。

步骤H,终端172中的指标存储模块1724可以保存指标生成模块生成的传输测试指标。例如,保存至数据库或者保存为本地指标文件等。

步骤I,终端172中的指标发送模块1725可以周期性地从指标存储模块1724中获取最新生成的指标,然后将获取到的最新指标发送至终端171中的指标接收模块1714。

重复步骤A~步骤I,直至测试时长结束。

接下来,基于上文所描述的待测网络的视频传输能力的测试过程,对本申请实施例提供的一种视频传输测试方法进行介绍。可以理解的是,该方法是上文所描述的待测网络的视频传输能力的测试过程的另一种表达方式,两者是相结合的。该方法是基于上文所描述的待测网络的视频传输能力的测试过程提出,该方法中的部分或全部内容可以参见上文对待测网络的视频传输能力的测试过程的描述。

请参阅图6,图6是本申请实施例提供的一种视频传输测试方法的流程示意图。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。其中,该方法可以应用于包含有第一终端和第二终端的系统,如图6所示,该视频传输测试方法包括:

步骤S101、第一终端获取N路视频流,N为大于1的正整数。

本方案中,第一终端可以自行生成N路视频流,也可以从本地文件中读取到N路视频流。在一个例子中,N的数值可以由测试人员设定,也可以由第一终端根据经验值自动生成,在此不做限定。其中,第一终端可以理解为上文描述的终端171。

步骤S102、第一终端控制N路视频流经第一网络并发传输至第二终端,其中,第一终端在N路视频流传输时控制N路视频流中M路视频流中的I帧发生碰撞,2≤M≤N。

本方案中,第一终端可以控制N路视频流经第一网络并发传输至第二终端,其中,第一终端在N路视频流传输时控制N路视频流中M路视频流中的I帧发生碰撞。其中,第一网络可以理解为上文描述的预先配置的网络。其中,第二终端可以理解为上文描述的终端172。

在一个例子中,第一终端可以根据第二指标,I帧统计数据和预设的测试参数,确定是否进行I帧碰撞。第二指标为第一终端最新接收的第二终端发送的指标,第二指标可以包括M路视频流发生I帧碰撞的实时概率,I帧统计数据用于统计N路视频流中每路视频流中与I帧相关的数据,测试参数可以包括M路视频流的路数和期望M路视频流中的I帧发生碰撞的概率。其中,第二指标可以理解为上文描述的I帧碰撞指标,I帧统计数据可以理解为上文描述的I帧统计数据,测试参数可以理解为上文描述的测试参数。

在一个例子中,I帧统计数据可以包括以下一项或多项:N路视频流中每路视频流已发送的I帧的数量,或者,在前次发生I帧碰撞时,N路视频流中每路视频流已发送的I帧的数量。

若第一终端确定进行I帧碰撞,进一步地,第一终端控制N路视频流中M路视频流中的I帧发生碰撞。在一个例子中,第一终端可以从N路视频流中筛选M路视频流,以及同时发送M路视频流中的I帧,从而使得M路视频流中的I帧发生碰撞。

作为一种可能的实现方式,如图7所示,第一终端从N路视频流中筛选M路视频流,可以包括以下步骤:

步骤S201、第一终端根据视频帧统计数据和第三指标,确定N路视频流中每路视频流的权重值。

本方案中,第三指标为第一终端最新接收的第二终端发送的指标,该第三指标可以包括N路视频流中每路视频流的传输指标。其中,第三指标可以理解为上文描述的N路视频流中每路视频流的传输指标,视频帧统计数据可以理解为上文描述的视频帧统计数据。第一终端接收到第三指标后,即可以根据第三指标和视频帧统计数据,确定N路视频流中每路视频流的权重值;其中,视频帧统计数据可以用于统计N路视频流中每路视频流中视频帧的数据。示例性的,可以将第三指标和视频帧统计数据输入至权重确定模型,以得到N路视频流中每路视频流的权重值。

步骤S202、第一终端根据N路视频流中每路视频流的权重值,从N路视频流中随机筛选出M路视频流。

本方案中,第一终端确定出N路视频流中每路视频流的权重值后,可以但不限于利用加权随机算法,从N路视频流中随机筛选出M路视频流。

接着,在第一终端发送N路视频流后,即可以执行步骤S103。

步骤S103、第二终端接收N路视频流的视频帧,以及确定N路视频中每路视频流的第一指标,第一指标用于表征第一网络的视频传输能力。

本方案中,第二终端接收到第一终端发送的N路视频流的视频帧后,可以对每路视频流的视频帧进行解码,进而确定出N路视频中每路视频流的第一指标,该第一指标用于表征第一网络的视频传输能力。其中,第一指标可以理解为上文描述的传输测试指标。

可以理解的是,本方案提供的方法中的部分或全部描述,可以参考上文有关描述,在此就不再一一赘述。

由此,本方案中,在测试多路视频传输所在的网络时,可以控制部分或全部的视频流中的I帧发生碰撞,从而模拟监控业务上线后多路视频流并发传输时随机发生I帧碰撞的场景,使得在测试过程中可以覆盖多种实际应用场景,进而有效测试出预先配置的网络的视频传输能力。

接下来,基于上文所描述的待测网络的视频传输能力的测试过程,以终端171为执行主体,介绍本申请实施例提供的另一种视频传输测试方法。可以理解的是,该方法是上文所描述的待测网络的视频传输能力的测试过程中终端171执行过程的另一种表达方式,两者是相结合的。该方法是基于上文所描述的待测网络的视频传输能力的测试过程提出,该方法中的部分或全部内容可以参见上文对待测网络的视频传输能力的测试过程的描述。

请参阅图8,图8是本申请实施例提供的另一种视频传输测试方法的流程示意图。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。其中,该方法可以应用于第一终端,即上文所描述的终端171,如图8所示,该视频传输测试方法包括:

步骤S301、获取N路视频流,N为大于1的正整数。

步骤S302、控制N路视频流经第一网络并发传输至第二终端,其中,在N路视频流传输时控制N路视频流中M路视频流中的I帧发生碰撞,2≤M≤N,以测试所述第一网络的视频传输能力。

本方案中,第二终端可以用于基于接收到的N路视频流的视频帧,确定N路视频中每路视频流的第一指标,第一指标用于表征第一网络的视频传输能力。

可以理解的是,本方案提供的方法中的部分或全部描述,可以参考上文有关描述,在此就不再一一赘述。

由此,本方案中,在测试多路视频传输所在的网络时,可以控制部分或全部的视频流中的I帧发生碰撞,从而模拟监控业务上线后多路视频流并发传输时随机发生I帧碰撞的场景,使得在测试过程中可以覆盖多种实际应用场景,进而有效测试出预先配置的网络的视频传输能力。

基于上述实施例中的方法,本申请实施例提供了一种视频传输测试装置。请参阅图9,图9是本申请实施例提供的一种视频传输测试装置的结构示意图。如图9所示,该视频传输测试装置900包括:通信模块91和处理模块92;其中,通信模块91可以用于获取N路视频流,N为大于1的正整数;处理模块92可以用于控制N路视频流经第一网络并发传输至第二终端,其中,在N路视频流传输时处理模块92可以控制N路视频流中M路视频流中的I帧发生碰撞,2≤M≤N,以测试所述第一网络的视频传输能力。

在一个例子中,通信模块91可以为图2所示的终端中的收发单元203,处理模块92可以为图2所示的终端中的处理器201。

在一个例子中,通信模块91可以由图5中的视频编码模块1711,视频文件读取模块1712,数据获取模块(17131,17132,17133),数据发送模块(17161,17162,17163)和指标接收模块1715组成。处理模块92可以为图5中的I帧碰撞控制模块1714。

在一个例子中,处理模块92,还可以用于:根据第二指标,I帧统计数据和预设的测试参数,确定是否进行I帧碰撞;其中,第二指标为第一终端最新接收的第二终端发送的指标,第二指标包括M路视频流中I帧发生碰撞的实时概率,I帧统计数据用于统计N路视频流中每路视频流中与I帧相关的数据,测试参数包括M路视频流的路数和期望M路视频流中的I帧发生碰撞的概率。

在一个例子中,I帧统计数据包括以下一项或多项:N路视频流中每路视频流已发送的I帧的数量,或者,在前次发生I帧碰撞时,N路视频流中每路视频流已发送的I帧的数量。

在一个例子中,处理模块92,还可以用于:从N路视频流中筛选M路视频流,以及同时发送M路视频流中的I帧。

在一个例子中,处理模块92,还可以用于:根据视频帧统计数据和第三指标,确定N路视频流中每路视频流的权重值,视频帧统计数据用于统计N路视频流中每路视频流中视频帧的数据,第三指标为第一终端最新接收的第二终端发送的指标,其中,第三指标可以包括N路视频流中每路视频流的传输指标;根据N路视频流中每路视频流的权重值,从N路视频流中随机筛选出M路视频流。

在一个例子中,第三指标包括以下一项或多项:帧率,或者,时延抖动;视频帧统计数据包括以下一项或多项:N路视频流中每路视频流已发送的视频帧的总数,或者,N路视频流中每路视频流中的I帧间隔。

在一个例子中,第一指标包括以下一项或多项:帧率,时延,时延抖动,码率,丢包率,帧峰均比,渲染帧数,或者,丢帧率。

在一个例子中,第二终端用于基于接收到的N路视频流的视频帧,确定N路视频中每路视频流的第一指标,该第一指标可以用于表征第一网络的视频传输能力。

在一个例子中,第二终端可以为上文所描述的终端172。终端172中也可以包括通信模块和处理模块。其中,终端172中的通信模块可以由图5中的数据接收模块(17211,17212,17213)和指标发送模块1725组成。终端172中的处理模块可以由图5中的解码渲染模块(17221,17222,17223),指标生成模块(17231,17232,17233)和指标存储模块1724组成。

在一个例子中,该视频传输测试装置可以部署于上文所描述的第一终端中。

应当理解的是,上述装置用于执行上述实施例中的方法,装置中相应的程序模块,其实现原理和技术效果与上述方法中的描述类似,该装置的工作过程可参考上述方法中的对应过程,此处不再赘述。

基于上述实施例中的方法,本申请实施例还提供了一种芯片。请参阅图10,图10为本申请实施例提供的一种芯片的结构示意图。如图10所示,芯片1000包括一个或多个处理器1001以及接口电路1002。可选的,芯片1000还可以包含总线1003。其中:

处理器1001可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1001中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1001可以是通用处理器、数字通信器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

接口电路1002可以用于数据、指令或者信息的发送或者接收,处理器1001可以利用接口电路1002接收的数据、指令或者其它信息,进行加工,可以将加工完成信息通过接口电路1002发送出去。

可选的,芯片1000还包括存储器,存储器可以包括只读存储器和随机存取存储器,并向处理器提供操作指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(NVRAM)。

可选的,存储器存储了可执行软件模块或者数据结构,处理器可以通过调用存储器存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。

可选的,接口电路1002可用于输出处理器1001的执行结果。

需要说明的,处理器1001、接口电路1002各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。

应理解,上述方法实施例的各步骤可以通过处理器中的硬件形式的逻辑电路或者软件形式的指令完成。其中,该芯片可以应用于图2所示的终端中。

可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。

本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。

可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。

技术分类

06120114792396