HDC2021技术分论坛:吐司盒子?芝士码?HarmonyOS音视频测试来啦

news/2024/11/22 20:33:32/

作者: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音视频测试服务!


http://www.ppmy.cn/news/185880.html

相关文章

IPTV系统视频直播点播软硬件一体化方案OEM盒子

IPTV系统其实是一个统称,其主要功能是视频的点播、直播和图文资料等的展示,一般在酒店、医院等领域会称之为IPTV系统或者OTT点播系统。但在其他应用场景中也可以称之为点播系统,比如教育领域。点量小芹在长期的一线沟通中接触过很多教育类的客…

度目视频分析盒子+NVR

度目视频分析盒子配合NVR使用指南 视频分析盒子功能介绍: 视频分析盒子主要是用摄像头拉取视频流进行分析,对视频里面的人脸进行抓拍和识别,支持8路视频的接入,如果接入6路IPC达到25帧;接入8路IPC达到15帧左右。 …

树莓派制做视频盒子教程

一、简介 日前在旧金山召开的谷歌I/O会议上,谷歌宣布了一种名为“谷歌电视([Google TV](https://baike.baidu.com/item/Google TV))”的direct-to-TV服务,也就是我们所熟悉Android TV 。Google TV的合作伙伴包括英特尔、索尼、罗技、台湾Sansonic , Ado…

追剧盒子使用指南

使用指南 一、手机安装教程二、 注册登录说明三、VIP激活说明四、视频播放说明五、软件如何投屏到电视1.安卓手机2.苹果手机 六、常见问题 一、手机安装教程 1.安卓手机直接用微信或者浏览器扫码下载安装即可。 2.苹果手机安装流程 扫码以后点击信任追剧盒子 然后依次点击设…

xHiveAI Jetson NX盒子:音视频流硬件解码

Nvidia提供gstreamer和ffmpeg两种方法来实现对于音视频流的解析和硬件解码操作。我们的盒子基于Nvidia标准release的ffmpeg4.2.2来实现该功能。 获取示例代码 git clone https://github.com/apoidea-xhiveai/jetson.git 音视频解码的代码路径为:jetson/hd_decoder/…

盒子(Box)

给定6个矩形的长和宽wi和hi&#xff08;1<wi,hi<1000),判断它们能否构成长方体的六个面。 #include<iostream> #include<algorithm> #include<stdio.h> using namespace std; pair<int,int> a[7]; int main() {while(cin>>a[1].first>…

八核智能视频分析边缘计算盒子,4.8T+24路1080P视频解码

随着人工智能技术的发展&#xff0c;算力下沉到边缘侧&#xff0c;AI算法边缘化成为新的发展趋势。在边缘视觉应用中&#xff0c;视频数据边缘化分析处理&#xff0c;可以高效完成数据的特征提取和推理分析&#xff0c;实现AI能力的下沉&#xff0c;更符合海量细分场景应用需求…

Java网络编程-Ping监测

实现一个用于执行 Ping 命令并监测主机可达性的线程类。它的作用是通过执行 Ping 命令来检查指定 IP 地址的主机是否可达&#xff0c;并获取相关的响应时间和丢包率信息。 代码中的 PingThread 类同样继承自 Thread&#xff0c;意味着它可以在单独的线程中执行。 在 run 方法…