短短两周时间,在线抓娃娃从一个默默赚钱的行业变成了风口行业,从硬件到软件架构、从盈利到投资、从运营到推广,全方位解读都有了。惟独H5抓娃娃(特指移动web、微信抓娃娃),仍然很神秘。html
H5抓娃娃真的有那么神秘吗?本文为你全方位揭晓。web
H5抓娃娃,是指支持HTML5的Web端抓娃娃。能够分为两类:PC端和移动端。浏览器
PC端的H5抓娃娃,只要支持WebRTC的浏览器,就能够直接使用Agora Web SDK。固然,也可使用WebRTC自研,解决若干服务端传输、设备适配、回声、可用度等问题后,就能够商用了。PC端的H5抓娃娃,已经有很成熟的解决方案。微信
移动端的H5抓娃娃,就比较复杂了。移动端的H5抓娃娃是指两种:移动web浏览器和微信内网页抓娃娃。大多数抓娃娃厂商的需求是在微信推广网页抓娃娃,不是除微信之外的移动浏览器。网络
那么,问题很清楚了,大多数人所说的H5抓娃娃是指微信内置浏览器抓娃娃,下文为了叙述方便,就简称微信H5抓娃娃。架构
目前成熟的PC端Web抓娃娃,是经过WebRTC来实现。绝大多数浏览器都对WebRTC有较好的支持。可是iOS的微信内置浏览器不支持WebRTC。优化
接下来,就以声网Agora的微信H5方案,来揭开微信H5抓娃娃的神秘面纱。编码
正如前文所说,微信H5要解决的就是最后一个环节——操做端播放视频。声网采用的策略是,使用JSMpeg在微信浏览器播放。3d
JSMpeg 是用 JavaScript 实现的视频播放器,它包括一个 MPEG 分离器,MPEG1 视频和 MP2 音频解码器,WebGL 和 Canvas2D 渲染和 WebAudio 声音输出。 JSMpeg 的体积相对较小,在绝大多数浏览器上都能工做的很好,在 iPhone 5S 上可以以 30fps 的帧率解码 720P 的视频。cdn
因为JSMpeg只支持MPEG1格式,因此在解码环节增长一个转码Server,将视频格式转成MPEG1。再经过中继Server将视频分发到微信浏览器,经过JSMpeg播放。
其余环节,微信H5方案与非微信H5方案彻底一致。
经过技术架构图能够看到,微信H5抓娃娃,最后是经过成熟的开源项目来实现,这也是大多数主流微信H5抓娃娃的实现方式。那么,决定微信H5抓娃娃体验不一样的差别在哪?
抓娃娃最关键的体验有如下3个方面:
延时有操做端到娃娃机的指令延时,和娃娃机到操做端的视频延时。
决定抓娃娃延时体验的关键在于视频延时。
视频清晰度和延时,是两个互相对立的。在带宽不变的状况下,视频越清晰,帧率、码率越高,延时越高。所以,在视频清晰度和延时之间要取得一个平衡点。
声网经过私有专利的编解码器,在保证清晰度的前提下,尽量的下降码率。经过丢包重传、FEC、带宽检测、动态码率调整等弱网对抗策略,保证用户在网络质量不佳时,也能得到流畅的体验。
声网在全球部署近100个节点,构成SD-RTN™通讯网。SD-RTN™系统可以实时根据各节点的链接和传输情况、负载情况以及到用户的距离和响应时间,自动分配最优、最通畅的传输路径,达到实时传输须要的质量保障级别。
根据Callstats.io数据显示,在美国地区,基于WebRTC的实时通信有89%能够被成功创建。而声网的SD-RTN™经过在每一个地区的密集布点,已经将登陆成功率提升至99%。
平均400ms延时和稳定400ms延时,用户的体验是不同的。稳定的400ms延时,(用户内心面会有预期),相比一下子 200,一下子 800 会有更好的体验。
抓娃娃快速上线以后的关键问题,就是留存。除去业务模式,决定用户留存的就是体验质量。舍弃用户体验而求快,是本末倒置。回归质量、用户体验,才是长久的发展之路。
对接文档: document.agora.io/cn/1.14/tut…
如对咱们感兴趣,或遇到开发问题,欢迎访问声网 Agora问答版块与声网工程师交流。