在用户眼中,优秀的音视频产品应该具有清晰、低延时、流畅、秒开、抗丢包、高音效等特征。为了满足用户以上要求,网易云信的工程师通过自建源站,在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环境配置可以对网络参数进行评估,对数据进行整合,实现多组数据的对比,实现自动化结果的展示。

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

如何做好 Android 端音视频测试?相关推荐

  1. android端音视频同步

    音视频流是相互独立的.其中音频解码后得到pcm裸流,通过扬声器播放:视频解码后得到yuv再转换为rgb像素格式,通过屏幕(SurfaceView)渲染显示.与音视频同步有关的概念:dts(decode ...

  2. Android移动端音视频的快速开发教程(五)

    接  Android移动端音视频的快速开发教程(四) 3.3. 数据传输事件接口 3.3.1. 接口定义 package com.bairuitech.anychat; // 数据传输通知接口 pub ...

  3. 网易技术干货 | 云信移动端音视频UI自动化测试实践

    本篇文章来自网易云信高级测试工程师,在从事测试工作的五年时间中,她做过Android端.Windows端.Web端.服务端测试,在UI自动化.接口自动化.音视频测试方面均有所积累.本文将结合应用实践, ...

  4. (强烈推荐)移动端音视频从零到上手(转载)

    移动端音视频从零到上手 原文链接 概述 随着整个互联网的崛起,数据传递的形式也在不断升级变化,总的流行趋势如下: 纯文本的短信,QQ -> 空间,微博,朋友圈的图片文字结合 -> 微信语音 ...

  5. 探索移动端音视频与GSYVideoPlayer之旅 | Agora Talk

    大家好,我是 Github 开源 GSY 系列项目的负责人郭树煜,比如 Android 上的 GSYVideoPlayer 就是这个系列里的项目,另外我也是 <Flutter 开发实战详解> ...

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

    作者:lifusheng,用户体验技术专家 当下,音视频无处不在,很多设备和应用都涉及音视频.因而,对于HarmonyOS开发者们来说,如何对鸿蒙生态产品进行音视频测试是一个非常重要的问题. 华为Ha ...

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

    2014-03-03 13:51 by Blacker, 5464 阅读, 7 评论, 收藏, 编辑 接触Android WebRTC有一段时间了,现在将研究过程中的一些经验和知识总结出来,希望大家有 ...

  8. 技术系列课|音视频测试实战——记音视频测试那些事

    2020年持续火热的直播带货.在线教学.视频会议产品,让越来越多的人开始钻研并专注在音视频技术领域.音视频质量是如何一步步提升的?QA人员日常是如何做评测的?本次分享中,网易智慧企业部资深音视频测试工 ...

  9. 关于音视频测试的一点建议

    作者:罗必达,腾讯音视频实验室质量平台组组长,高级工程师.早年在微软从事移动测试开发,先后参与了 Windows Live Messenger 和 Bing Mobile 两个项目的测试工作.2011 ...

最新文章

  1. admob html5,AdMob发布Windows手机SDK并支持HTML5
  2. java des验证码,Servlet返回验证码
  3. 关于2021年 美赛论文 提交失败的解决方法
  4. java并发synchronized 锁的膨胀过程(锁的升级过程)深入剖析(1)
  5. php $key{$x},Thinkphp 3.x key可控注入(?)
  6. git太慢时的加速办法,测试有效
  7. 元宇宙里“倒腾狗”,预示“下一代互联网”要来了?
  8. 在树莓派3上使用红外遥控器控制libreELEC和Raspbian系统
  9. android模拟奥克斯空调红外,奥克斯空调手机遥控器
  10. 易语言制作计算软件简单步骤_ps软件制作一寸照,原来如此简单
  11. Tableau数据源(一)-引入数据源
  12. 一文读懂支付通道背后的江湖!——下
  13. 华芯微特MCU——SWM181
  14. 成都艾司博讯:什么是拼多多网店的品质退款率?
  15. 雅加达(印度尼西亚)出差小记
  16. 基于STM32F429的语音识别交互系统
  17. nico老是显示服务器升级,Nico会员服务条款
  18. Simscape - 关节添加摩擦力
  19. 《道德经》第二十六章
  20. 数学好学计算机还是自动化,计算机准备好解决这个臭名昭著的庞杂数学问题了吗?...

热门文章

  1. ionic 混合应用开发
  2. 将Ojective-C代码移植转换为Swift代码
  3. 生物医学图片处理——怎样才算不当操作?
  4. 微型计算机硬件认识和拆装,贵州省习水县第一中学张天梅
  5. yabailv 运放_运放入门
  6. 主线程如何等待多线程完成 返回数据_多线程基础体系知识清单
  7. linux文件怎么操作,linux文件操作学习1
  8. 生产过程中计算机软件的确认--简述医疗器械生产过程确认
  9. python中怎么比较两个列表的大小_Python:找到两个列表中存在的给定长度的公共子列表...
  10. unity随笔(1)-材质、对象