短短兩週時間,在線抓娃娃從一個默默賺錢的行業變成了風口行業,從硬件到軟件架構、從盈利到投資、從運營到推廣,全方位解讀都有了。惟獨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問答版塊與聲網工程師交流。