zoukankan      html  css  js  c++  java
  • 说好不哭,现在就带你了解直播类音视频测试!

    最近的热搜被周杰伦的《说好不哭》拿下了

    QQ音乐热搜第一

    知乎热榜指数过亿

    微博热搜一次性上十几条

    新歌一经首发,QQ音乐一度奔溃

    我们不谈工作,不谈测试

    先放下手中的鼠标,看看MV

    看完之后,你心里有什么被触动了吗?

    90后的青春,Jay是纯真和长情的代名词

     说好不哭,是现代中年人最后的倔强

    接下来,中年人们聊聊因为说好不哭奔溃的qq音乐

    一款好的产品不一定必须是

    技术最高端,界面最酷炫的

    有时稳定性和可用性压倒一切

    如果刚好在热点事件敏感时期

    你的音乐卡顿或者视频花屏了

    会带来非常大的用户损失

    一些严重问题甚至会带来法律风险

    然后,看看2019年曾经娱乐中年人们

    未来也将继续娱乐中年人们的音视频软件排行榜

    2019视频软件排行榜:


    2019音乐软件排行榜:

    显而易见,优酷、爱奇艺、全民K歌、QQ音乐、网易云等音视频直播市场的繁荣是大势所趋

    测试人员,如何对直播类产品的直播质量进行测试呢?

    用户最关心的性能表现如何呢?

    音视频质量测试的标准是什么呢?

    真正决定未来竞争的关键,是在功能满足用户需求的前提下,提高直播软件的各项质量指标,对流畅度、清晰度、音质、稳定性和流量消耗等进行专项测试,从而音视频通话质量。

    音视频基本原理

    工欲善其事,必先利其器。

    首先,我们一起了解音视频基本原理。

    音视频基本原理流程图如下,虽然音频和视频每一块环节上的处理方法上完全不同,但基本的流程一致:


    1.采集

    音视频需要经过摄像头、麦克风上等硬件设备上通过其上的传感器采集传输转化,最终成为计算机数字信号的过程。其中双人视频和群视频中的播片,采集播放都是由ffmpeg插件完成。

    2.前处理

    采集完的音视频数据需要经过一些处理得到更好的效果,音频的前处理包括增益控制(AGC) 噪声抑制(ANS)、回声抵消(AEC)、静音检测(VAD)等,视频的前处理包括视频降噪、缩放 等。

    3.编解码

    一个信号或者一个数据流需要进行编解码操作,这里指的变换既包括将信号或者数据流进行编码(通常是为了传输、存储或者加密)或者提取得到一个编码流的操作。视频编解码器众多,例如vp8、vp9、MPEG、H264等;音频类编解码器可分两大类,语音类编解码器(SILK、Speex、iSAC等)和音频类编解码器(ECELT、AAC等)。

    4.网络传输

    在网络传输中,会针对不同的网络环境选取UDP或TCP传输,在即时音视频通话上一般优先采用UDP,因为其可自由度、延时都较好;除外还会针对传输过程中存在的损耗进行处理,包括控制包大小、FEC机制、丢包重传、Jitter控制、时延、乱序等等。

    5.后处理

    数据经过网络传输到接受方后经过解码进入后处理环节,该环节中,音频数据可能需要重采样或混音,而视频可能需要消除块效应、时域降频等等。

    6.播放/渲染显示

    在经过后处理后,数字信号转化为声音及画面的过程就是播放/渲染。Windows系统中常用的音频播放api有DirectSound、WaveOut、CoreAudio。

    视频质量标准

    以下介绍视频质量标准和测试方法。

    1. 进房速度

    正常网络要求:进入房间耗时小于1秒(iOS和Android端)

    弱网络要求:弱网络下对进房速度没有制定标准

    Android建议使用中低端机型(如小米note),IOS建议使用iphone6S测试

    测试方法

    覆盖场景:入口要覆盖全,比如app内部、QQ、QQ空间、微信、朋友圈、新浪微博

    1.一台手机打开毫秒级的秒表,然后另一台测试手机打开被测产品,进入主播房间;

    2.进入主播房间出现第一帧画面后,暂停秒表记录数据;

    3.需要重复以上步骤,进行20次数据,最终结果取均值。

     竞品数据

    机型

    应用

    进入房间耗时(ms)

    安卓

    竞品A


    竞品B


    竞品C


    竞品D


    苹果

    竞品A


    竞品B


    竞品C


    竞品D


     

    2. 清晰度

    正常网络要求:跟上个版本相比,清晰度没有出现劣化现象

    弱网络要求在网络丢包率10%场景下,清晰度跟正常网络的数据相比没有出现明显下降

    工具Imatest

    环境调试

    1.摄像头和目标卡片的距离为0.75m,光源与被拍摄卡片的角度保持在45°,以确保卡片表面不会有阴影产生;

    2.使用荧光灯(D65/CWF/SP35)进行测试前,至少预热光源15 分钟;

    3.测量反射性卡片表面的9 个点的照度和色温,以确保灯光一致性,调节被测手机位置,使其拍摄位置居中。

    操作步骤:

    1.使用不同竞品拍摄卡片,将拍摄的图片导入PC,使用Imatest工具计算清晰度,点击 SFR:New File;

    2.选择需要处理的图片,进行添加,选中图片上的13个分布点(如下图)框图处理,框图完成点击【 Yes,Continue】

    3.点击【 OK 】和【 Yes 】,计算生成的MTF50P即为图片的清晰度

    影响因素

    清晰度受视频分辨率和码率影响较大,发送码率越大且分辨率越高,则视频清晰度越好,注意不要脱离码率仅仅依据分辨率大小来判断清晰度高低。

    竞品数据

    主播手机平台

    竞品

    清晰度值

    IOS

    竞品A


    竞品B


    竞品C


    Android

    竞品A


    竞品B


    竞品C


     

    3.帧率

    正常网络由于人类眼睛的特殊生理结构,如果所看画面帧率高于16的时候,就会认为是连贯的,因此帧率建议不低于16帧。设置帧率时可根据需求综合考虑,对比竞品。而帧率低于5帧时,人眼能明显感觉到画面不连贯,产生卡的感觉。

    弱网络要求:在网络丢包率10%场景下,帧率跟正常网络相比没有出现明显下降

    测试方法

    设备:2台电脑 + 1个摄像头 + 2部手机。一台电脑播放视频,一台电脑录制视频,一部手机当主播,一部手机当观众,摄像头采集观众端画面。

    视频源:特定视频demo.avi

    操作步骤:

    1.电脑1播放循环视频demo.avi,电脑2插入摄像头,打开“会声会影”软件;

    2.手机A发起直播,手机B当该直播的观众,A对准播放视频的电脑,打开“会声会影”软件,将录制视频电脑的摄像头对准B;

    3.点击“会声会影”软件的捕获——》捕获视频——》设置“捕获文件夹”,点击捕获视频(大概录制10~20s),视频捕获完成。捕获之后的视频格式为mpg格式;

    4.mpg格式的文件转换为yuv格式:编辑mepg2Dec.cmd文件,如下图所示,将文件名改为所捕获的视频文件名,保存之后运行mpeg2dec.exe

    5.打开YUVviewerPlus.exe文件,如下图所示,设置录制视频的分辨率(会声会影录制文件默认分辨率为720*480),点击open File打开转换后的yuv格式文件;

    6.点击“next”开始数帧数,以1s 30帧为基准,30下内场景图像变动的次数即为帧率(最好是数3s)3s图像变动的次数取平均值。建议取录制视频的开头/中间/尾部3处求平均值。

    影响因素

    在网络正常无损伤的情况下,帧率主要受视频影响,视频码率越大则会编码高帧率和高分辨率的视频码流。

    竞品数据

    竞品

    主播手机平台

    帧率

    竞品A

    IOS


    Android

    竞品B

    IOS


    Android

    竞品C

    IOS


    Android

     

    4. 卡顿次数

    标准

    正常网络要求:

    弱网络要求:

    测试方法

    地球仪(IOS)或自动化测试工具(Android

     影响因素

    在网络正常无损伤的情况下,帧率主要受视频影响,视频码率越大则会编码高帧率和高分辨率的视频码流

     5.视频质量稳定性

    在各种损伤变化场景下,直播3小时内未出现花屏、黑屏、自动中断等现象

    测试方法

    1.损伤自动化测试,并使用软件会声会影进行录制;

    2.查看录制的视频是否有花屏、黑屏或异常中断等现象。

    音频质量标准

    以下介绍音频质量标准和测试方法。

    1.采样率

    正常网络要求:音频采样率大于16k

    弱网络要求:音频采样率大于16k

    测试需覆盖直播场景和连麦场景。

    测试方法

    设备:两台手机、可播放样本设备、录音笔

    1.一台手机进入主播环境,另一台手机作为观众端;

    2.使用一个可播放语音(音乐)样本的设备在主播端进行播放;

    3. 观众端用录音笔录下接收到的语音

    4.使用adobe audition查看频谱:最高频谱为7k左右,因此采样率应为16k;

    2.音质客观评分

    正常网络要求:正常网络直播时,语音音质均分>=4.0分

    弱网络要求:弱网络直播时,语音音质均分>=3.5分

    测试方法

    直播模式:由于直播时延大于2秒,因此采用音频线录制并剪切后再用SPIRENT设备进行测分。

    设备:两条音频线,一台PC,两台手机

    1.主播端的麦克风连接PC的扬声器,观众端的扬声器连接PC的麦克风;

    2.PC循环播放48k语音样本(样本时长为10s)

    3.打开adobe audition进行录制,录制时间约2mins

    4.把录制下来的音频进行分段剪切(每段语音为10s,前面空白语音保留约3s)

    5.上传剪切的音频文件到SPIRENT设备并算出POLQA均分

    连麦模式:时延低于1s,可SPIRENT设备直接测音质。

    1.主播端与观众端连麦;

    2.接入SPIRENT设备测试音质,双向测试时间约为8mins

    3.得出音质平均分

    3.音画同步

    正常网络和弱网络下,出现音画不同步现象概率为0

    测试方法

    观看直播过程中,主观判断视频画面中主播口型跟声音是否对得上

    连麦-噪声抑制

    主播和观众连麦模式下,主播→观众的噪声消除效果跟上个版本相比,噪声抑制效果没有变差。

    测试方法

    设备:音频线一条,播放语音样本设备、PC一台

    1.主播端与观众端连麦;

    2.把主播端手机放在消音室并固定位置,然后在消音室内使用可播放语音样本的设备播放噪声样本;

    3. 观众观的扬声器口连接PC的麦克风;

    4.使用Adobe Audition 进行录制并保存文件;

    5. 相同方法录制上一版本(保持相同的测试环境);

    6.新旧版本进行对比,选取相同的语音段和噪声段,算出信噪比。

     4.连麦-回声抵消

    标准:播和观众连麦模式下,单讲和双讲时,说话方听到的回声较小,不会影响交流。

    测试方法

    单讲:观众端开启扬声器,主播端说话,主观听是否有自己的回声;反过来观众端说话,听是否有回声。

    双讲:双方都开启扬声器,并同时说话,主观听是否有回声,或声音断续有剪切。


    5.抗抖动能力

    主播端:上行抖动时延在400ms内,视频直播不会有影响

    观众端:下行抖动时延在400ms内,视频直播不会有影响

    测试方法

    1.主播端上行加400ms抖动,观看观众端视频画面和语音;

    2.观众端上行加400ms抖动,观看观众端视频画面和语音。


    6.CPU占用率

    主播端:CPU不超过40%(iOS:iPhone6、安卓无指定机型)

    观众端:CPU不超过30%(iOS:iPhone6、安卓无指定机型)

    测试方法

    1. iOS:非越狱手机连接mac机,用instrument录制CPU后使用脚本算出CPU,CPU占用率=(主进程+mediaserverd+backboard)/核数

    2.Android: 通过cmd命令,进入命令行,输入adb shell top –m 10 >d:xx.txt命令行打印手机的CPU消耗参数,再用过脚本处理,提取出video和mediaserver的CPU消耗,两者相加的和就是音视频的CPU消耗。

    7. 流量

    视频直播时,观众端接收到的音视频数据大小跟上个版本相比,流量没有出现增加。

    测试方法

    Ios:

    1.非越狱手机连接mac机,打开终端,输入:rvictl +手机identifier

    2.进入su模式,输入:tcpdump –i rvi0 –vv –s 0 –w xx.pcap

    3.运行3mins,再用wireshark打开文件,查看流量。

    Android

    1. 安装抓包小工具:

    2.程序开始运行后点击小工具并开始;

    3.用wireshark打开生成的pcap文件,查看流量。

    8.电量

    观看直播时,观众端的电池电量消耗跟上个版本相比,电量没有出现增加。

    测试方法

    1.观众端观看主播端,观看10mins、20mins,记录手机电量消耗多少个百分点;

    2.保持相同环境和相同手机,测试上一版本;

    3.比较新旧版本的耗电量

    9.发热量

    观看直播时,观众端的手机发热量跟上个版本相比,电量没有出现增加。

    测试方法

    1.观众端观看主播端,观看10mins、20mins、30min,用测温枪测量手机后背温度并记录;

    2.保持相同环境和相同手机,测试上一版本;

    3.比较新旧版本的耗电量

    以上

    That's all.

    想要获取测试相关资料和软件 ?

    请扫码入群

  • 相关阅读:
    CentOS 6.x Radius
    Linux系统优化
    Linux 常用检测命令
    Linux 修改终端命令提示符颜色
    Linux LVM简明教程
    剑指Offer 通过中序和先序遍历重建二叉树
    剑指Offer 树的子结构
    剑指Offer 从上往下打印二叉树(dfs)
    剑指Offer 把字符串转换成整数
    剑指Offer 两个链表的第一个公共结点
  • 原文地址:https://www.cnblogs.com/ITester520/p/13203402.html
Copyright © 2011-2022 走看看