HDC2021技术分论坛:吐司盒子?芝士码?HarmonyOS音视频测试来啦
作者:lifusheng,用户体验技术专家
当下,音视频无处不在,很多设备和应用都涉及音视频。因而,对于HarmonyOS开发者们来说,如何对鸿蒙生态产品进行音视频测试是一个非常重要的问题。
华为HarmonyOS生态整机测试能力中心——DevEco Testing,为生态合作伙伴接入HarmonyOS生态提供专业的测试服务。DevEco Testing推出的音视频测试服务,为HarmonyOS整机提供音视频评测能力,满足开发者们的上述需求,也为鸿蒙生态保驾护航。
下面我们以手机投屏业务为例来聊一聊音视频测试吧~
一、传统音视频测试的痛点
手机投屏业务,是将手机播放的视频投屏到智能大屏或平板等。针对手机投屏业务,传统的音视频测试方法就是通过高速相机录制投屏的视频内容和手机播放的视频内容,再用视频工具将高速相机录制的内容逐帧提取出来,人工分析视频流畅、声画同步和时延等测试指标。
传统的音视频测试存在以下痛点:
1. 很多环节需要人工分析,工作量大,误差也大
在分析视频时延、视频流畅、音频时延、声画同步等指标时,除了专业的工具外,往往还需要分析人员逐帧逐采样点地进行结果分析。每测试1分钟的内容,就要分析14400张图片,2880000个音频波形采样点,并对图片和音频波形进行比对,工作量巨大。同时,人为因素引入的误差也比较大。
2. 声画同步测试效率低
所有录像设备录制的内容都会存在声画同步偏差。同一个设备在不同时间录制的内容,声画同步偏差也不同。传统的测试方法是:选择自然界中的真实内容(例如打板、敲击桌子或者钢珠掉落等)作为声画同步测试的校准依据,然后人工分析声画同步偏差,比较费力,且效率低。
3. 录制的图像很容易产生断裂
高速相机录制液晶屏幕,因为液晶屏幕的逐行刷新特性,录制的图像很容易发生丢帧、帧重叠等,导致图像断裂,如图1所示。
图1 图像断裂
4. 测试工具的录制频率低,引起测试偏差比较大
目前主流音视频测试工具的录制频率是60赫兹,引起的测试偏差起码有1/60秒(大约16.7毫秒)。
二、DevEco Testing音视频测试的优势
针对以上痛点,DevEco Testing音视频测试服务是如何应对的呢?下面就让我们一一揭晓~
1. DevEco Testing的音视频测试服务实现了播放、采集、分析全流程自动化测试,无需人工干预。
2. 我们设计了一个可以由计算机视觉和声音识别的、物理的声画同步源——吐司盒子。
吐司盒子可校准所有录像的声画同步偏差,还可以作为录像、直播、视频通话类业务的测试工具,让计算机视觉听觉可以自动化分析测试结果。
图2 吐司盒子
3. 针对录制图像断裂的问题,我们设计了芝士码。
芝士码是基于格雷码而全新设计的二维码。音视频测试时,DevEco Testing后台推送视频到被测设备播放。推送视频的每一帧都含有一个芝士码,DevEco Testing很容易检测出是否发生丢帧、帧重叠等。
图3 芝士码
4. 我们选择支持240赫兹的录像设备,提升测试精度,让测试偏差控制在1/240秒(大约4.17毫秒)。
三、测试流程和实例
了解了DevEco Testing音视频测试服务的优势后,下面让我们来看看DevEco Testing音视频测试的测试流程和测试实例。
1. 典型组网和测试流程
DevEco Testing音视频测试的典型组网如图4所示。
图4 典型组网图
目前,DevEco Testing的音视频测试服务提供三项检测服务:视频流畅性测试、视频质量测试和编解码能力测试。
以视频流畅性测试为例,测试流程如下:
(1)用户在PC端的DevEco Testing客户端上创建测试任务,并开始测试任务。
(2)PC端上的DevEco Testing根据测试任务中配置的“视频分辨率”和“测试帧率”,选择最佳的视频源传输到被测设备。
(3)DevEco Testing控制被测设备,打开对应的app播放器,单文件循环播放刚刚传输的视频。
(4)DevEco Testing下发指令给吐司盒子,吐司盒子开始工作。
(5)DevEco Testing下发开始录制的指令给录像设备,录像设备录制被测设备和吐司盒子的视频。测试任务中配置了“测试时长”,到达时长后,DevEco Testing下发停止录制的指令给录像设备。
(6)DevEco Testing下发指令给吐司盒子,吐司盒子停止工作。
(7)录像设备上传录制的视频到PC端,PC端的DevEco Testing对视频进行分析,形成测试报告,然后将测试报告上传到云端。
通过以上测试流程可知,用户需要执行操作的就是第(1)步——创建和开始测试任务,然后等待DevEco Testing自动完成测试并生成测试报告即可。
2. 测试实例
下面我们仍然以手机投屏业务为例,来看看DevEco Testing音视频测试需要准备的设备和具体的操作步骤。
图5 测试场景
图5是手机投屏业务的测试场景。根据图5可知,需要准备如下设备:
(1)被测设备:即播放视频的手机。
(2)投屏设备:用于将被测设备播放的视频投屏到此设备。
(3)吐司盒子:声画偏差的校准设备,是一个可以由计算机视觉和声音识别的、物理的声画同步源。
(4)录像设备:支持240帧慢动作录制的设备。图1中的录像设备是一台手机。
除了以上四个设备外,还需准备一台Windows 10(64位)的PC机,并在PC机上安装DevEco Testing客户端。
下载地址(注意选择“下载设备测试客户端”):
https://devicepartner.huawei.com/cn/competency-test
图6 下载DevEco Testing客户端
以上设备连接就绪后,就可以开始测试了。
下面为大家介绍如何创建和开始测试任务,以及如何查看测试报告:
(1)登录DevEco Testing客户端,选择“图形图像测试 > 音视频测试”。
(2)选择测试服务,比如“视频流畅性测试”。
(3)在图7所示的“创建任务”界面配置测试参数,点击“开始测试”。
图7 创建任务
(4)图8所示的“测试执行”界面显示测试任务的进度和过程步骤。
图8 测试执行
(5)测试任务执行完成后,点击右下角的“查看报告”,即可查看详细的测试结果,如图9所示。
图9 查看报告
以上就是本期DevEco Testing音视频测试的介绍内容了,欢迎大家体验DevEco Testing音视频测试服务!
HDC2021技术分论坛:吐司盒子?芝士码?HarmonyOS音视频测试来啦的更多相关文章
- HDC2021技术分论坛:如何高效完成HarmonyOS分布式应用测试?
作者:liuxun,HarmonyOS测试架构师 HarmonyOS是新一代的智能终端操作系统,给开发者提供了设备发现.设备连接.跨设备调用等丰富的分布式API.随着越来越多的开发者投入到Harmon ...
- HDC2021技术分论坛:组件通信、硬件池化,这些创新技术你get了吗?
作者:ligang 华为分布式硬件技术专家,sunbinxin 华为应用框架技术专家 HarmonyOS是一款全新的分布式操作系统,为开发者提供了元能力框架.事件通知.分布式硬件等分布式技术,使能开发 ...
- HDC2021技术分论坛:异构组网如何解决共享资源冲突?
作者:lijie,HarmonyOS软总线领域专家 相信大家对HarmonyOS的"超级终端"比较熟悉了.那么,您知道超级终端场景下的多种设备在不同环境下是如何组成一个网络的吗?这 ...
- HDC2021技术分论坛:进程崩溃/应用卡死,故障频频怎么办?
作者:jiwenqiang,DFX技术专家 提到开发一个产品,我们通常首先想到的是要实现什么样的功能,但是除了功能之外,非功能属性也会很大程度上影响一个产品的体验效果,比如不定时出现的应用卡死.崩溃 ...
- HDC2021技术分论坛:“积木拼装”,HarmonyOS弹性部署大揭秘!
作者:peitaiyi,华为终端OS产品交付专家 HarmonyOS是一款面向万物互联时代的.全新的分布式操作系统.在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力.适配多种终 ...
- HDC技术分论坛:HarmonyOS新一代UI框架的全面解读
作者:yuzhiqiang,UI编程框架首席技术专家 在Harmony 3.0.0开发者预览版中,包含了新一代的声明式UI框架ArkUI 3.0.多语言跨平台编译器ArkCompiler 3.0.跨端 ...
- 腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践
1.概述 本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebR ...
- 腾讯技术分享:微信小程序音视频技术背后的故事
1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...
- 音视频通讯QoS技术及其演进
利用多种算法和策略进行网络传输控制,最大限度满足弱网场景下的音视频用户体验. 良逸|技术作者 01 什么是QoS?音视频通讯QoS是哪一类? QoS(Quality of Service)是服务质量的 ...
- 了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化
本文原文由声网WebRTC技术专家毛玉杰分享. 1.前言 有人说 2017 年是 WebRTC 的转折之年,2018 年将是 WebRTC 的爆发之年,这并非没有根据.就在去年(2017年),WebR ...
随机推荐
- 【Azure Fabric Service】怎样关闭 Azure Service Fabric?
问题描述 怎样关闭Azure Service Fabric服务呢?在Azure门户上没有找到 Stop 按钮. 问题回答 Azure Service Fabric 默认是无法停止的,可以删除. 虽然可 ...
- Java 异常处理(1) :try-catch-finally的使用
1 package com.bytezero.throwable; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 impor ...
- C++学习笔记之基础语法
目录 基础语法 switch和if区别 枚举定义及作用域 结构体数据耐齐--缺省对齐原则 函数重载overload与C++Name Mangling 指向函数的指针与返回指针的函数 基础语法 swit ...
- 基于可穿戴的GPS定位存储模块方案特色解析
前记 GPS作为一个位置定位手段,在日常生活中扮演着非常重要的角色.在研发动物可穿戴产品的同时.团队一直在做产品和模块标准化的事情,尽量把研发出来的东西标准化.按照任老板的说法,在追求理想主义的路 ...
- labeImg 遇到闪退问题,TypeError: setValue(self, a0: int): argument 1 has unexpected type 'float'
将python 环境安装为python3.9,然后重新安装labelImg
- C 可变参数函数分析(va_start,va_end,va_list...)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 两个int变量交换
两个变量int a,int b,不用临时变量过渡,两种方法: 第一种: a= a+b; b= a-b; a= a-b; 第二种:异或的方法,也就是位运算,两个相同的数异或是为0的. a= a^b; b ...
- 记录--iview 使用爬坑
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间公司需要开发一个后台管理系统,时间比较急迫,一两天时间.想一想自己一点一点的搭建起来可能性不太大,就想着有没有现成的可以改一改,就 ...
- 《On Java 8》笔记 2
第十一章 内部类 Java 8 的 Lambda 表达式和方法引用减少了编写内部类的需求 外部类可以提供一个方法返回一个指向内部类的引用 链接外部类 内部类还拥有其外部类的所有元素的访问权 使用 .t ...
- python opencv DNN 人脸检测
import cv2 modelFile = "res10_300x300_ssd_iter_140000_fp16.caffemodel" configFile = " ...