声网Agora水晶球试用

2020 年 11 月 05 日

声网Agora水晶球试用

在上一篇文章《声网 Agora WordPress 插件试用》中,笔者体验了在 WordPress 站点中集成声网 Agora 音视频插件的全过程。笔者也提到,这款 WordPress 插件可以让 WordPress 站长方便地与来自全球的访客通过音视频交互,而无需双方安装任何专属应用。考虑到各个地区市场流行的音视频通讯应用往往有所不同(例如日本用户多使用 Line,中国用户大都使用微信,美国用户更多使用 Facebook Messenger,等等),在标准浏览器 Web 界面中实现音视频会话能够打破这种“应用壁垒”,加强世界各地用户之间的交流联系。

 

然而,不同地理区域的用户不仅在习惯的应用方面有所区别,另一项非常重要的差异化因素就是访问网站的 IP。考虑到音视频交互的实时性和高带宽需求,要同时向世界各地的用户提供高质量的音视频服务是一项巨大的挑战。作为这款 WordPress 插件的底层,声网 Agora 的音视频服务网络能否满足全球化时代音视频交互的苛刻需求呢?

 

对于缺乏编程基础知识的站长来说,调查某款应用的音视频传输质量往往是比较困难的问题。站长通常只能通过实际使用中的个人感受来定性摸索服务水平,很难给出定量的分析数据。尤其在考察不同地区 IP 的访问体验时,这种模糊的判断方式能够得出的有效信息是非常稀少的。幸运的是,声网 Agora 在控制界面中提供了一个针对所有音视频交互历史进行质量分析的模块——水晶球。本文就将通过这一模块,对 Agora Word Press 插件在全球不同地区 IP 的服务质量进行分析,并探索 Agora 水晶球的优缺点以做评价。


水晶球概览

登入 Agora 控制台后,从左侧菜单栏就可以直接进入水晶球的控制页面:



初始页面只有一个搜索框,没有其他模块。在搜索框中可以按照时间、频道名称和通话状态几个要素来搜索左侧项目栏中指定项目的历史通话记录。例如,要搜索 10 月 8 日这一天,test- broadcast 频道的通话记录:



点开一条记录后,就可以看到会话的详细信息:



这里需要注意,user1 指的是会话发起方,也就是向外广播视频的站长;其他用户则是观看方,也就是访问页面的用户。水晶球是不会统计发起方对外发送音视频的“通话体验质量”的,只有接收端才可以显示体验质量的统计图。

 

点击接收端通话质量图表的“查看详情”按钮,可以浏览更多详细信息:




这里可以看到比较丰富的统计数据。第一行是 CPU 状态,如果浏览器能够获取设备 CPU 信息的话应该会在这里显示,但是 iOS 端的浏览器是不会提供这部分信息的。

 

第二行是视频发送/接收的分辨率。初看上去这里只有粗略的分辨率信息,难道要用户自己拿尺子比量来判断精确的数字吗?其实只要点击条形图上的某一点就可以获取精确的,带时间码的分辨率数据:



下一行分别是“视频发送帧率”和“视频帧率及卡顿”,分别是发送方和接收方的视频帧率统计。注意所有这些项目的尺度都是可以缩放的:




右侧图表中,出现卡顿(帧率低于 10)的部分会用红色表示。

 

最后一行是丢包统计和事件统计,点击下方的事件竖条会有详细信息:



点击码率图中的曲线各个点也会有详细数据:



音频选项卡下的统计数据如下:



以上就是水晶球提供的所有统计数据。可以看到 Agora 水晶球给出的数据还是非常全面细致的,并且 UI 也很友好:既有直观的动态可缩放图表,也可以点击图表中的点获取某一时点的精确数据。实际测试中发现,每个对话完结后几分钟之内水晶球就可以给出统计报告,响应速度也是令人满意的。


统计数据与实际体验

从上面提供的统计数据可以看到,接收端统计到的视频帧率波动是比较大的。但是实际通话中发现,接收端感受到的帧率一直比较稳定,并没有出现严重的卡顿。并且无论画面处于基本静止状态还是有大量运动内容,这种统计数据与实际体验之间的矛盾都一样存在。目前笔者还没有找到对这一现象的合理解释。一种猜测是水晶球统计的帧率数据并非接收端显示器实际显示的画面帧率,后者因为有缓冲区的帮助所以可以一直维持比较流畅的画面。限于条件,这个问题笔者无法进行更多环境的对比测试,暂时只能搁置。

 

测试中发现,真正能反映实际观看体验的统计数据是丢包率。当统计数据中出现丢包情况时,实际观看中已经能感受到比较明显的卡顿,例如:


以上是某次测试中统计的丢包率,可以看到发送端出现了一次比较严重的丢包,在图中特意用红色竖线标出。上行和下行的码率曲线也有比较大的不一致现象。实际体验中,这次会话的接收端出现了多次卡顿,延迟也是比较明显的。

 

综合来看,通过水晶球统计的丢包率来评价会话质量是比较好的指标。

全球各区域的会话质量评价

获得较好的参考指标后,我们就可以分析对比 Agora 音视频服务网络在全球各地 IP 的服务质量了。条件所限,笔者只能粗略对比少数一些区域的传输质量。经过对比发现,中国大陆和香港地区的传输质量是最佳的,而日本、台湾、新加坡等亚洲地区要差一些,到了欧美地区会出现比较多的丢包情况。

 

但是要注意,以上测试是笔者通过代理机制模拟各地区用户的观看操作来获取统计信息的。实际的跨区域会话质量需要会话双方分别处于不同的物理地域,才能避免长距离代理通道本身产生的延迟和中转丢包。考虑到这一要素,笔者获得的对比信息仅能提供一些参考,不能作为评价 Agora 全球服务质量的准确依据。但是基于这种方法,生产环境的用户的确可以获得比较准确的用户端体验状况数据,进而评价自身对不同区域客户提供的服务水平。

总结

声网 Agora 的水晶球模块是一款很好的音视频会话质量统计工具,可以为用户提供比较详尽的服务质量统计报告。这款工具操作简便、UI 友好,即使是非编程人员也能轻松掌握,有助于跨职能团队协作和管理层及时掌握项目生产状况。

 

实际使用中也发现了水晶球的一些问题。首先是搜索界面的过滤功能可以更详细一些,最好可以根据会话的实际时长和接收端的数量过滤,方便用户查找真正有价值的会话数据。其次,用户查找出关键的会话数据后,应该可以对特定会话添加标签、存储在收藏夹中,以备将来进一步对比处理。会话的详细统计报告应该能输出为 Excel 表格或 xml 文档等外部格式在本地保存,方便用户结合自有的统计流程。最后,水晶球未来可以提供更多维度的统计信息,例如多次会话的接收方 IP 地理区域分布、多次会话的综合质量评价等,并提供按天、按周提供综合报告,以及在出现特定问题时报警等功能。

 

希望声网 Agora 未来进一步改进强化水晶球工具,为用户带来更优质的服务。


2020 年 11 月 05 日 19:03309

评论

发布
暂无评论
发现更多内容

有了TA,领域外企业里的小IT团队,也能轻松搞定大型项目

Marilyn

敏捷开发 快速开发

个人数字人民币钱包即将亮相

CECBC区块链专委会

央行 数字人民币

OpLog4j

Geek_746da6

OKR-VUCA时代目标管理利器实践分享

张兆东

区块链 | 最火的七大职业了解一下

CECBC区块链专委会

区块链技术人才

The story of programmers in famous enterprises.

Marilyn

敏捷开发 快速开发

JVM-技术专题-类加载机制

李浩宇/Alex

Java JVM

图解 K8S 源码 - Informer 篇

郭旭东

Kubernetes Kubernetes源码

LeetCode题解:94. 二叉树的中序遍历,使用栈,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

国外的公司都是如何对待大龄程序员的?在国内该如何应对?

Java架构师迁哥

肝到头秃!阿里爆款的顶配版Spring Security笔记

周老师

Java spring 编程 程序员 架构

服务器的发展历史

德胜网络-阳

Kubeless 如何基于 CPU 自动伸缩? | 玩转 Kubeless

donghui2020

Serverless kubeless

年轻人大企打拼多年,刚升迁便遇巨大阻力难以解决,到底如何才能在职场中幸存?

Marilyn

敏捷开发 快速开发

华为云专家讲述知识图谱构建流程及方法

华为云开发者社区

华为 数据 知识图谱

典型的大型互联网系统使用了哪些技术方案和手段,主要解决什么问题?

极客海

中国银行正式启动区块链产业金融服务项目 ​

CECBC区块链专委会

区块链 金融 金融服务

来喽,来喽,Python 3.9正式版发布了~~~

华为云开发者社区

Python 编程

Programmatic Navigation using SwiftUI| 使用SwiftUI进行程序化导航

Daniel

我和我的智能联接

脑极体

亚马逊Prime会员日火爆开启一站购全球逾3000万正品商品

爱极客侠

翻译之深入注释俄罗斯民间故事的语料库,以实现对俄罗斯形式主义理论的机器学习

AI代笔

JVM-技术专题-Java类文件结构

李浩宇/Alex

Java JVM

在线教育企业迎来“秋招”大考,数字用户体验成胜负关键手

BonreeAPM

运维 APM 在线教育 AIOPS 用户体验

从哲学源头思考自动驾驶网络架构设计

华为云开发者社区

自动驾驶 架构

图扑软件联手阿里Lindorm数据库开启工业物联超融合存储模式

许力

IoT AIOT

高难度对话读书笔记—聆听篇

wo是一棵草

【第四周】系统架构

云龙

第三周作业一

dll

拜托,学妹,别再问我怎么自学 Java 了!和盘托出

沉默王二

Java 自学编程

苦难过后,终会团聚

hellocj

声网Agora水晶球试用-InfoQ