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客户端。
下载地址(注意选择“下载设备测试客户端”):
HarmonyOS Connect - 华为智能硬件合作伙伴平台
图6 下载DevEco Testing客户端
以上设备连接就绪后,就可以开始测试了。
下面为大家介绍如何创建和开始测试任务,以及如何查看测试报告:
(1)登录DevEco Testing客户端,选择“图形图像测试 > 音视频测试”。
(2)选择测试服务,比如“视频流畅性测试”。
(3)在图7所示的“创建任务”界面配置测试参数,点击“开始测试”。
图7 创建任务
(4)图8所示的“测试执行”界面显示测试任务的进度和过程步骤。
图8 测试执行
(5)测试任务执行完成后,点击右下角的“查看报告”,即可查看详细的测试结果,如图9所示。
图9 查看报告
以上就是本期DevEco Testing音视频测试的介绍内容了,欢迎大家体验DevEco Testing音视频测试服务!
扫码添加开发者小助手微信
获取更多HarmonyOS开发资源和开发者活动资讯
HDC2021技术分论坛:吐司盒子?芝士码?HarmonyOS音视频测试来啦相关推荐
- HDC2021技术分论坛:跨端分布式计算技术初探
作者:zhengkai,分布式通信首席技术专家 当今的移动应用都向着智能化和多样化方向发展,例如AI辅助,VR/AR应用,沉浸式游戏等.然而现实中的移动设备,因为便携性要求受限于尺寸.电池容量以及温控 ...
- HDC2021技术分论坛:OpenHarmony驱动框架解读和开发实践
转自:OpenAtom OpenHarmony 作者:yuanbo,华为高级工程师 在IoT时代下,终端设备差异较大.形态各异.尺寸各异.交互方式各异,解决设备适配问题无疑是实现万物互联的一个关 ...
- HDC2021技术分论坛:HarmonyOS低代码开发介绍
作者:sunyuhui,wangxiaoyan,华为2012实验室软件IDE专家 什么是低代码开发?低代码开发主要特点有哪些?如何利用低代码开发原子化服务?本文带你一探究竟~ 目录 一.什么是Harm ...
- 直播预告 | 第四范式2021发布会技术分论坛报名开启,6月23日线上见
以「开源开放,激发AI创新动能」为主题的第四范式2021发布会技术分论坛将于6月23日19:00开启线上直播. 本场论坛将会详细介绍第四范式积累多年的自研人工智能底层技术组件以及实操演示,全面了解第四 ...
- SOFA Weekly|可信基础设施技术分论坛、Layotto 社区会议回顾与预告、社区本周贡献...
SOFA WEEKLY | 每周精选 筛选每周精华问答,同步开源进展 欢迎留言互动- SOFAStack(Scalable Open Financial Architecture Stack)是蚂 ...
- WICC 2021 技术分论坛 “开箱即用”语聊房Demo成亮点
7月24日,第三届全球互联网通信云大会(WICC 2021)在北京成功召开,数千开发者共赴通信云技术盛宴.本次会议中,"开发者服务生态"被作为重要议题引起了全产业链的广泛关注.作为 ...
- 华为开发者大会 2022 开发者主题演讲与技术分论坛干货分享(附课件)
11 月 4 日-11 月 6 日,HDC 2022 在东莞成功举办,这是一场大规模落地的思维与技术的碰撞,众多业内专家到场,共话未来.其中,开发者主题演讲围绕增强的声明式开发体系,通过一个 Demo ...
- 【推荐】2021年华为开发者大会PPT合集(154份,包含技术分论坛PPT50份)
2021年10月22日当天下午,华为开发者大会2021主题演讲将在东莞篮球中心举行.华为常务董事.消费者业务CEO.智能汽车解决方案BUCEO余承东,华为消费者业务软件部总裁龚体,华为消费者业务AI与 ...
- 聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除
聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除 在聊聊语音聊天室app源码各个实时音视频互动场景中,回声和噪声对于影响用户体验而言都是很大的问题.音视频正在发展成为互联网线上沟通的 ...
最新文章
- 初学 Delphi 嵌入汇编[9] - asm 可以代替 begin
- 系统 销售订单号_销售单,进货单自动计算,一键保存的进销存管理系统,十分好用...
- QML与Qt C++ 交互机制详解
- 计算机结构优化,计算机结构与程序优化.ppt
- Java Swing –日期选择器对话框
- 数学家田野:感谢坐冷板凳的那六年
- java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.wifi.SCAN_RESULTS flg
- OSL LLVM 3.3 Related Changes
- Chronicle 已死,凶手是谷歌!
- 面试被问项目上线没_从面试官角度谈观察到的程序员技能瓶颈
- javamailsender注入失败_使用Spring3.x框架的java mail支持来发送邮件
- 小米路由器r1d刷第三方_好物推荐 篇三:服役多年的小米路由器R1D准备让他退休, 小米路由R3D开始上岗...
- 龙骨导出html文件打不开,一种用于铝型材与龙骨的连接结构的连接件的制作方法...
- coap python_一步步搭建物联网系统——RESTful的CoAP协议
- mysql清理碎片_清除MySQL表空间碎片详细方法
- excel合并两列内容_技巧不求人169期 Excel打印最常用的8大技巧 Excel合并多表数据...
- html自动幻灯片代码,简单常用的幻灯片播放实现代码
- windows系统下进入jupyter本地服务器(localhost)的步骤
- SSH java 面试题
- 使用DDKWirzard+VS2005开发驱动