电子说
短短两周时间,在线抓娃娃从一个默默赚钱的行业变成了风口行业,从硬件到软件架构、从盈利到投资、从运营到推广,全方位解读都有了。唯独H5抓娃娃(特指移动web、微信抓娃娃),仍然很神秘。
H5抓娃娃真的有那么神秘吗?本文为你全方位揭晓。
H5抓娃娃,是指支持HTML5的Web端抓娃娃。可以分为两类:PC端和移动端。
PC端的H5抓娃娃,只要支持WebRTC的浏览器,就可以直接使用Agora Web SDK。当然,也可以使用WebRTC自研,解决若干服务端传输、设备适配、回声、可用度等问题后,就可以商用了。PC端的H5抓娃娃,已经有很成熟的解决方案。
移动端的H5抓娃娃,就比较复杂了。移动端的H5抓娃娃是指两种:移动web浏览器和微信内网页抓娃娃。大多数抓娃娃厂商的需求是在微信推广网页抓娃娃,不是除微信以外的移动浏览器。
那么,问题很清楚了,大多数人所说的H5抓娃娃是指微信内置浏览器抓娃娃,下文为了叙述方便,就简称微信H5抓娃娃。
目前成熟的PC端Web抓娃娃,是通过WebRTC来实现。绝大多数浏览器都对WebRTC有较好的支持。但是微信的内置浏览器不支持WebRTC。
上图是在线抓娃娃实时视频流的大致处理流程。在抓娃娃的业务场景中,采集是通过安放在娃娃机上的主板或PC机来实现,渲染/播放就是娃娃机操作端。微信H5抓娃娃与App抓娃娃的唯一区别就是娃娃机操作端。前者是微信内置浏览器,后者是Native App。
接下来,就以声网Agora的微信H5方案,来揭开微信H5抓娃娃的神秘面纱。
正如前文所说,微信H5要解决的就是最后一个环节——操作端播放视频。声网采用的策略是,使用JSMpeg在微信浏览器播放。
声网Agora在线抓娃娃技术架构图
JSMpeg 是用 JavaScript 实现的视频播放器,它包括一个 MPEG 分离器,MPEG1 视频和 MP2 音频解码器,WebGL 和 Canvas2D 渲染和 WebAudio 声音输出。
JSMpeg 的体积相对较小,在绝大多数浏览器上都能工作的很好,在 iPhone 5S 上能够以 30fps 的帧率解码 720P 的视频。
由于JSMpeg只支持MPEG1格式,所以在解码环节增加一个转码Server,将视频格式转成MPEG1。再通过中继Server将视频分发到微信浏览器,通过JSMpeg播放。
其他环节,微信H5方案与非微信H5方案完全一致。
娃娃机端,通过主板或PC机连接两个摄像头,采集视频数据。
通过Agora 的专利编码器编码器,进行视频流的优化。
通过Agora 全球部署的实时虚拟通信网SD-RTN™进行视频实时传输
最后到达操作端,解码、播放
操作端通过业务Server将操控指令发送给娃娃机端,通过视频流获得实时反馈。
可以从SD-RTN™分出一路高延时的rtmp流播放给观众
通过技术架构图可以看到,微信H5抓娃娃,最后是通过成熟的开源项目来实现,这也是大多数主流微信H5抓娃娃的实现方式。那么,决定微信H5抓娃娃体验不同的差异在哪?
抓娃娃最关键的体验有以下3个方面:
延时
可用度
服务稳定
1. 延时
延时有操作端到娃娃机的指令延时,和娃娃机到操作端的视频延时。
指令延时:由于操作端到娃娃机端的指令,数据包极小,因此延时很低,一般是几十毫秒。
视频延时:视频延时如果在400ms以内,玩家可接受。
决定抓娃娃延时体验的关键在于视频延时。
视频清晰度和延时,是两个互相对立的。在带宽不变的情况下,视频越清晰,帧率、码率越高,延时越高。因此,在视频清晰度和延时之间要取得一个平衡点。
声网通过私有专利的编解码器,在保证清晰度的前提下,尽可能的降低码率。通过丢包重传、FEC、带宽检测、动态码率调整等弱网对抗策略,保证用户在网络质量不佳时,也能获得流畅的体验。
声网在全球部署近100个节点,构成SD-RTN™通信网。SD-RTN™系统能够实时根据各节点的连接和传输状况、负载状况以及到用户的距离和响应时间,自动分配最优、最通畅的传输路径,达到实时传输需要的质量保障级别。
2. 可用度
根据Callstats.io数据显示,在美国地区,基于WebRTC的实时通讯有89%可以被成功建立。而声网的SD-RTN™通过在每个地区的密集布点,已经将登录成功率提高至99%。
3.服务稳定
平均400ms延时和稳定 400 毫秒延时,用户的体验是不一样的。稳定的400ms延时,(用户心里面会有预期),相比一会儿 200,一会儿 800 会有更好的体验。
抓娃娃快速上线之后的关键问题,就是留存。除去业务模式,决定用户留存的就是体验质量。舍弃用户体验而求快,是本末倒置。回归质量、用户体验,才是长久的发展之路。
声网在线抓娃娃整体解决方案已被哇叽哇叽抓娃娃、开心抓娃娃、乐抓、秒抓、抓多多、咔啦酷抓娃娃、爱抓、美爆抓娃娃、娃娃鸡、抓抓等几乎所有主流厂商采用。
全部0条评论
快来发表一下你的评论吧 !