如何做好 Android 端音视频测试?

在用户眼中,优秀的音视频产品应该具有清晰、低延时、流畅、秒开、抗丢包、高音效等特征。为了满足用户以上要求,网易云信的工程师通过自建源站,在SDK端为了适应网络优化进行QoS优化,对视频编码器进行优化,同时对音频算法进行优化。

推荐阅读

短视频技术详解:Android端的短视频开发技术

如何快速实现移动端短视频功能?

弱网环境测试

网易云信直播项目上线后,出现了音视频卡顿的问题,音视频卡顿现象通常出现在网络条件不是特别理想的情况,一般直播画面频繁出现缓冲标志或者直播画面一卡一卡的现象。

造成直播视频卡顿的原因:

1、CDN 节点覆盖不全:CDN服务器覆盖不足导致区域卡顿、运营商覆盖力度不足导致区域性卡顿;

2、CDN 接流节点不佳:主播上行推流卡顿导致直播卡顿;

3、主播网络差:数据上传受阻;

4、观众网络差: 数据下行受阻;

分析解决策略:

1、CDN节点覆盖不全:接入多家CDN节点,尽可能覆盖全球网络;

2、CDN接流节点不佳:自建源站;

3、主播网络差:SDK开发对QoS上行调整;

4、观众网络差:SDK开发对QoS下行调整;

测试需求:直播端QoS测试;

测试难点:

1、如何实现低成本、高效率的弱网环境?

2、怎样的网络才是导致用户卡顿的弱网环境?

3、弱网优化参数这么多,如何高效提取分析数据?

4、测试完了,怎么可以快速提供简洁清晰的结果给开发?

弱网测试工具:

弱网损伤仪、network emulator、fiddler、tc;

弱网损伤仪成本比较高,使用复杂;network emulator是微软的开源工具,可以实现带宽、丢包、延时、抖动等弱网参数的限制,被称为简易版本的弱网损伤仪,实现成本比较低,最终搭建弱网环境选择的是networkemulator工具;

network emulator工具使用建议:

1、办公环境内使用人多时,4G信号通道出现拥塞,虽然网络上行下行带宽足够,但网络丢包严重,造成限制网络不稳定的现象;

解决方法:开通支持开启5G信道的无线热点,部分缓解网络拥塞的现象;

2、弱网限制效果验证;

弱网环境参数选择;

常见弱网限制参数;

带宽、丢包、延时、抖动、综合网络;

具体数值选择方法:

第一步:逼近法,对上述限制参数从由高到低、由低到高给出范围;

第二步:业界标准和产品需求去反向要求开发优化的力度;

第三步:通过大数据筛选用户卡顿场景数据,覆盖用户出现卡顿的场景;

弱网测试常用参数:

测试常用高清视频分辨率为640*480,一般要求码率为800kbps以上,带宽限制一般设置为三挡,800kbps、600 kbps以及400kbps;丢包会设置5%、3%、1%;延时会设置300ms、200ms、100ms等限制;综合网络情况是将带宽、丢包以及延时进行结合的参数;为了监控用户实际使用的一些情况,也会进行一些4G、3G网络的覆盖;

测试流程:

开发提交测试之后,测试会针对入网效果进行简单测试,针对网络场景发现的bug返回给开发继续优化,开发优化完成之后传给测试,测试将结果再传给开发进行详细优化,过程需要反复进行,下图为测试开始进行的环境图:

直播与播放连接在同一个Wifi下面,用network emulator进行弱网限制,直播与播放都是从CDN拉流,然后获取直播和播放端一些音视频相关的统计数据,在播放端通过观测方式主观评测优化效果。

测试效率分析:

1、Android 端数据手工收集;

2、数据导入excel分析,耗时间;

3、测试工作量比较大;

解决策略:

1、Android 端开发 MCN 性能数据收集以及日志分析工具;

2、测试工具平台接收来自Android端的数据,进行数据汇总分析;

MCN Android 端:提供设备性能数据上传,包括CPU占用率、内存占用率、电量等数据,SDK统计数据上传,辅助弱网测试、视频测试等的开展。

实现原理:利用Android的系统API获取系统性能参数getProcessMemoryInfo,读取SDK存储在本地的日志,通过HTTP接口上传到测试工具平台展示。

测试工具平台:支持解析日志文件和HTTP请求,利用highcharts作图,提供数据对比分析作图并且保存功能,大大降低了测试完成之后数据整理作图分析的工作量,给开发提供了最为直观的测试结果。

测试执行:

测试结果展示:

上图中的蓝色线是实际带宽,黑色线代表的是评估带宽,从aos-1108-1这个图可以看出评估以及实际占用的带宽是非常接近的,通过这个图开发可以了解优化的效果,测试可以了解测试的结果。

视频测试

用户在视频实际使用过程中会发现,网络以及设备一致时,有些主播视频可以更加清晰;有些主播动态的图片会模糊,出现马赛克的情况;有些主播画面看起来比较细腻,甚至主播的毛孔都可以清晰看到,而有些主播看起来画面是模糊的;这就需要开发通过替换编码器的一些算法或者做一些参数的调优对编码器进行优化;

安卓端视频测试方面会影响的因素包括:拍摄场景、编码参数、设备性能、安卓兼容性以及网络。

前期的视频测试主要依靠主观评估,通过人肉眼查看编码的不同序列,运动剧烈的画面看马赛克、复杂的画面需看细节、录屏密集文字看边缘锐度等等;客观评估需要用PSNR。

PSNR评估是对编码器性能的评估,在排除网络影响的情况下,依赖一些视频序列评估编码器的编码质量。

同时视频测试还需要看一下码率控制,看一下输出码率是否符合设置给编码器的码率;

视频测试还需要考虑移动端设备的性能,相同编码参数下的CPU、内存的占比情况;

测试执行:

测试环境会用到MCN Android端去搜集实时音A端和实时音B端的数据,需要用network emulator模拟一些网络参数的影响,然后去测试工具平台上进行评估。

音频优化测试

音频决定了70%的用户体验,虽说用户对画面的直观感受是以看为主,以听为辅。如果说一个主播在直播时只有画面没有声音,这将直接影响用户体验;如果主播直播时声音断断续续,或者主播声音质量较低,都会影响直播的质量。

在音频方面面临的挑战有:音频编码器,不同的音频编码器有Opus,AAC等,这些编码器里面的部分算法不太一样,其中包括对音频的处理,对声音峰值的处理,对网络参数的应对,它的处理方式不太一样。实时音端的编码器用的是Opus,Opus相对于AAC来说,编码码率会更低,能够提供一些更高质量的音频体验;网络对音频体验也有影响,无论音频还是视频都会受网络的影响;回声消除对音频体验也有影响,如果没有回声消除,用户的音频体验会相对较差;啸叫以及安卓设备的差异都会对音频质量产生影响。

音频质量的评估

音频从IP电话开始发展,音频的技术处理已经相对成熟,同时对音频的测试技术也相对成熟,目前有较多付费软件可以实现对音频质量的评估,包括VQT等;

VQT:语音质量客观评估工具,可以包括 POLQA(ITU-T P.863),PESQ(ITU-TP.862),PESQLQ / LQO(P.862.1),PESQ WB(P.862.2),PAMS(ITU-TP.800)和PSQM / PSQM +(ITU-TP.861)等音频质量的评估;

目前网易云信使用VQT中的POLQA来评估网络变化对音频的影响,该评估主要使用了MOS分值,这是衡量通信系统语音质量的重要指标,5分为评估的最高分;

安卓端的覆盖策略首先会提供一个线上数据收集平台,根据不同的手机型号提交测试需求,也会挑选市面上TOP20的机型去做覆盖,也会挑选一些用户反映问题最多的机型去做一些针对性测试覆盖;

VQT中POLQA的环境配置:

优化后的POLQA环境配置:

优化后的POLQA环境配置可以对网络参数进行评估,对数据进行整合,实现多组数据的对比,实现自动化结果的展示。

以上就是安卓端音视频测试全过程,想要获取更多产品干货、技术干货,记得关注网易云信博客

原文地址:https://www.cnblogs.com/wangyiyunxin/p/11122230.html

时间: 2024-08-24 04:30:30

如何做好 Android 端音视频测试?的相关文章

Android IOS WebRTC 音视频开发总结(七十)-- 移动端音视频技术优化的七个方向

最近直播很火,很多朋友对背后的技术比较感兴趣,所以今天我们整理一篇关于移动端视频优化的文章,这篇文章是我朋友在一个技术大会上分享过的,更多内容请关注我们的微信公众号:rtcblacker 视频直播为什么会这么火? 首先,音视频直播.点播的需求一直大量存在,包括各种行业应用,比如视频门户.娱乐直播.游戏直播.在线教育.远程医疗,远程监控,企业协作,社交应用等等.“以前之所以没有全面爆发,是因为硬件条件不满足,比如网络的带宽有限”,目前网速仍在不断提升,光纤普及到小区,有线网络的上下行带宽已经达到要

Android WebRTC 音视频开发总结(五)

这几天用WebRTC做了个视频监控的功能,分享出来,供想了解这方面内容的朋友参考. 一.基本模块: 1.视频采集端:相当于是客户端,用来采集视频,只需要发送视频,不需要接收. 2.视频监控端:接收采集端传入的视频数据,相当于监控客户端,不需要发送视频数据给客户端. 3.服务端:负责客户端注册.信令控制.数据包转发.UDP打洞等,支持TCP,UDP连接. 二.环境要求: 1.两台Andorid4.0 以上的手机,分别做采集端和监控端. 2.一台PC 做服务端. 3.PC.手机在同一个局域网内.理论

Android 即时音视频解决方案2——腾讯云

上一篇文章介绍了环信的解决方案,见Android 即时音视频解决方案1--环信,这篇文章,介绍一下更加靠谱,也就是腾讯云的解决方案,毕竟腾讯是是这方面的头头,比较靠谱.当然,集成腾讯云比集成环信稍微复杂那么一点,需要有一点点的耐心. 官方地址音视频云通信 AVC SDK下载AV Andriod1.3 文档地址音视频云通讯 先讲讲腾讯云的原理,使用腾讯云的时候,要有一个账号体系,这个账号体系比较灵活,可以使用独立模式也可以只用第三方账号体系,这里使用独立模式. 使用独立模式,要使用腾讯云的服务的时

Android WebRTC 音视频开发总结(一)

Android WebRTC 音视频开发总结(一) https://github.com/gandg/webrtc-ios 接触Android WebRTC有一段时间了,现在将研究过程中的一些经验和知识总结出来,希望大家有所帮助.本章主要介绍下面四点: 一.WebRTC是什么? WebRTC是Google提供的一个跨平台的音视频开源解决方案,旨在使其成为音视频通讯的标准.其实在Google将WebRTC开源之前,微软和苹果各自的通讯产品已占用很大市场份额(如Skype),估计Google也是为了

音视频测试重点

语音通话的测试点: (1)回声 回声现象指的是用户在语音通话时听到自己的声音(有一定延时). 在传统的PC上,用户通常带上耳麦,一般不存在回声问题. 而在手机端通话时,通常时外放语音(听筒或扬声器),回声问题就变得比较突出. 因此,语音引擎会做相应的回声消除处理. (2)噪音 语音发送方由于背景噪音或手机设备原因,在语音中会夹杂噪杂声. 语音引擎会做降噪处理,尽可能地降低噪音,使声音保持清晰. (3)延时 语音在网络传输过程或者做抖动缓冲处理时,会产生一定的延时. 一个好的引擎应该尽可能地降低延

Android WebRTC 音视频开发总结

www.cnblogs.com/lingyunhu/p/3621057.html 前面介绍了WebRTCDemo的基本结构,本节主要介绍WebRTC音视频服务端的处理,,转载请说明出处(博客园RTC.Blacker). 通过前面的例子我们知道运行WebRTCDemo即可看到P2P的效果,实际应用中我们不可能让用户自己去里面设置对方的IP和音视频端口, 而且即使设置了对方的IP和端口也不一定能运行起来,因为P2P如果双方不在同一个网段则还需穿透NAT,那服务端具体该如何部署呢? 1.信令服务: 想

Android 即时音视频解决方案1——环信

需求 即时音视频通话 解决方案 环信,官方地址http://www.easemob.com/ SDK下载 http://downloads.easemob.com/downloads/easemob-sdk-2.2.2.zip SDK集成 解压下载的文件,将libs下的easemobchat_2.2.2.jar拷到Android Studio项目中的libs中,并在main目录下新建jniLibs目录,将so文件拷到其中.如图 代码抽取 我们只需要即时音视频的功能,因此环信提供的Demo中有多余

转:?Android IOS WebRTC 音视频开发总结 (系列文章集合)

随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). callstats是一家做实时通讯性能测阅读全文 posted @ 2016-07-22 08:24

手机Android音视频采集与直播推送,实现单兵、移动监控类应用

恰逢2014 Google I/O大会,不难看出安卓在Google的推进以及本身的开放性作用下,已经快延生到生活的各个方面了,从安卓智能手机.平板,到可穿戴的Android Ware.眼镜.手表.再到Android汽车.智能家居.电视,甚至最近看新闻,日本出的几款机器人都是Android系统的,再把目光放回监控行业,传统监控中的移动终端设备,例如:单兵设备.手持设备.车载终端设备,包括家庭监控中用到的智能设备,都可以用Android系统替代了,不仅开发容易,而且易扩展,设备也更加智能了. 图 -