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