實時音視頻技術的專業(yè)度和復雜度都很高,通過PaaS服務商來集成實時音視頻,快速開發(fā)App,是時下開發(fā)者的優(yōu)先選擇。所選RTC是否好用易用、契合所需場景,將直接影響項目開發(fā)進度和后期運維成本。
開發(fā)者需要了解實時音視頻技術選型中要避開的坑點,以便提高開發(fā)集成效率。具體來說,以下四個方面要綜合考慮。
一、實時音視頻與IM能力不宜分散
幾乎100%的實時音視頻在線應用都有文字/語音消息、文件傳輸、圖片顯示等IM需求。
目前市場上PaaS服務商這兩方面能力強弱不一:有的大廠雖然兩方面能力都提供,但不能確保兩種能力同樣高質量;有的專業(yè)RTC廠商,只能提供RTC能力,IM能力還得由第三方專業(yè)服務商提供。
這樣,便迫使開發(fā)者在集成過程中不得不分別選擇服務商。當實時音視頻與IM質量不穩(wěn)定時,需要逐一協(xié)調各個服務商,逐一排查問題,無形中增加了后期的運營成本。其實,IM和音視頻在很多場景下有耦合,建議開發(fā)者在選型一開始就要考慮具有RTC+IM雙重高保障能力的通信云廠商,盡量“用一套SDK,解決所有通信場景”。
對開發(fā)者來說兩項功能同時開發(fā),開發(fā)包相對比較??;如果前期只用到了IM,沒有用到RTC,那么只需要學習IM方面的開發(fā)文檔就可以了,一旦有了RTC需求,再去學習RTC文檔,開發(fā)者只需接入相關接口,快速與IM能力做對接和匹配,即可完成兩類功能在App生命周期里的全覆蓋。
除了開發(fā)上的易快速上手外,選擇“IM+RTC+推送”整合的解決方案,開發(fā)者還可以享受一致的網絡架構,提高傳輸的效率和質量,獲得一致的服務保障。例如,融云近期升級了實時音視頻能力,RTC的通信信令是復用IM信令通道,可以確保消息100%的連通率和到達率,使底層的通信優(yōu)勢發(fā)揮到最大。
二、延時、卡頓、抖動的質量問題要解決好
通過調研發(fā)現(xiàn),用戶最不能接受實時音視頻的三個質量問題是延時、卡頓、抖動。
低延時要靠兩個方面解決,一個是傳輸協(xié)議,一個是優(yōu)化整體傳輸環(huán)節(jié)。實時音視頻的主流傳輸協(xié)議有RTMP和UDP兩種,一種支持CDN技術,一種支持WebRTC技術,相對來說,CDN技術延時性在3-5秒,WebRTC可以在幾百毫秒以內,現(xiàn)在很多廠商可以同時支持這兩種技術,分別適用于不同的場景。
整體傳輸環(huán)節(jié)中,采集/渲染、編解碼/網絡往返都會有一定的延時,有些是硬件的物理延遲,需要靠5G這樣底層網絡技術的提升,或者布更多的數據中心、邊緣結點,便于就近接入;有些要針對實際場景,在具體形態(tài)上做一些權衡,比如在處理粒度上粗細的考慮,越細的粒度傳輸的數據包相對較大,延遲也會更高。
當音視頻出現(xiàn)卡頓時,有一個視頻流暢優(yōu)先的原則。我們通過降低一些碼率和幀率,即使畫面模糊一點,也要讓用戶視覺上是流暢不卡頓的。這樣在選型時候,要考慮幾個方面:一個是優(yōu)化低碼率下的視頻清晰度;二是要有帶寬估算能力,當預判到這個帶寬沒法承受高清晰視頻傳輸時,自動轉化成低碼率并通過優(yōu)化算法,使低碼率視頻清晰度能媲美高清視頻。
另外,數據包通常會以錯誤的順序到達,從而產生抖動相關問題,或者直接丟失,造成音視頻空白。谷歌一份資料顯示,視頻聊天應用Duo 99%的通話都有數據包丟失、過度抖動或網絡延遲情況。20%的通話丟失了超過3%的音頻,10%的通話丟包率超過8%,也就是說每次通話都有很多音頻需要替換。
處理上述問題,很多廠商會采用抗丟包及抗網絡抖動能力的NACK(丟包重傳)、FEC(前向糾錯)、自適應帶寬調整(動態(tài)調整碼)、接收端Jitter Buffer(媒體流平穩(wěn))等各種機制,有些是組合使用,有些是單獨使用,開發(fā)者在選型前一定要做到深入了解。
三、擁有全球通信和場景化能力
剛才談到低延時、抗丟包的解決策略,有些是與網絡接入路徑長短直接相關的。比如中美兩地的音視頻連接,沒有全球通信網絡支持、數據中心和節(jié)點布局的廠商是提供不了服務的。開發(fā)者選型開發(fā)前,就要考慮到自己業(yè)務的所屬范圍。
選擇全球化服務的云廠商,除了看數據中心和節(jié)點分布外,還要仔細考察全球網絡布局的品質,簡單說,有的廠商提供了全球網絡優(yōu)化能力,中美之間的音視頻連接在未優(yōu)化前要經過100多跳,而優(yōu)化后僅6跳就能完成連通。這是由于,這些廠商擁有自有的路徑最優(yōu)算法,通過智能路由就近接入,即使在異國/地網絡環(huán)境較差的情況下,仍然能夠及時切換到更好的線路上去。比如融云擁有全球優(yōu)化加速網絡,實時音視頻通話可做到全球端到端延時小于400ms,最低延時66ms,保障端到端之間延遲無感知的實時互動。
在場景化能力上,實際上相比IM,實時音視頻更加通道化,在各個場景中復用的程度也相對較高,能力也更基礎。優(yōu)秀的PaaS廠商會按場景提供不同的Demo,音視頻技術的升級也針對解決更多的應用場景去優(yōu)化,便于開發(fā)者拿來即用,這種方式對入門級的開發(fā)者都十分友好。各種API接口相對獨立,開發(fā)者只需關注和使用所需要的SDK,就可以實現(xiàn)想要的場景,大大降低集成開發(fā)的難度。
四、開發(fā)者服務足夠完善
在一些社區(qū)中,我們常常會看到一些技術文檔下,開發(fā)者提出問題而沒有回復。開發(fā)者為提高開發(fā)效率,越來越傾向于自助完成工作,因此,開發(fā)文檔是否易懂,Demo是否易用,都顯得十分重要。
另外,工單回復的速度,微信群、社區(qū)的值守和響應程度等都能反映PaaS廠商服務意識的強弱。通常來說,7×24小時技術支持服務,1小時工單快速回復、快速遠程接入、快速恢復的故障應急響應機制,這些都是對開發(fā)者很完善的服務支持。