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