开发者投稿|声网Agora 水晶球试用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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