直播作為實時性和互動性要求較高的音視頻應(yīng)用場景,存在非常多的技術(shù)難點,就連一對一的直播模式也毫不例外。比如低延遲、流暢性、回聲消除、國內(nèi)外互通和海量并發(fā)等問題,都是開發(fā)過程中的難點。但是,在開發(fā)過程中如果具備了優(yōu)質(zhì)的一對一源碼,那么這些難點可能都會得到一定的解決。 1. 低延遲 要想保證低延遲,前端和后端整個鏈條一定要做的非常嚴謹。像前端的一些編碼算法或者是丟幀策略等都要做好。此外,不同的業(yè)務(wù)場景之間編碼器的選擇也會有所不同,從而也會帶來不同程度上的編碼延遲,所以不同的業(yè)務(wù)場景能夠達到的延遲程度也是不一樣的。還有就是對于推拉流網(wǎng)絡(luò)的選擇,大部分的解決方案都會讓需要實時互動的用戶通過核心的語音視頻網(wǎng)絡(luò),像是BGP之類的優(yōu)質(zhì)節(jié)點來做傳輸,也有可能需要做轉(zhuǎn)碼、轉(zhuǎn)協(xié)議或混流之后,再通過聶榮分發(fā)網(wǎng)絡(luò)去分發(fā)。這樣一來,在接入核心語音視頻網(wǎng)絡(luò)時就需要有智能的調(diào)度策略來完成就近接入了。 ![]() 2.流暢性 流暢性作為直播過程中容易出現(xiàn)較多技術(shù)難點的一個方面,需要注意的也有很多。 (1)可以做動態(tài)伸縮的jitterbuffer,在網(wǎng)絡(luò)狀況差或者是網(wǎng)絡(luò)抖動比較劇烈的情況下,可可以適當增大,從而降低延遲來對應(yīng)出現(xiàn)的網(wǎng)絡(luò)抖動情況。 (2)快播和滿播技術(shù)在網(wǎng)絡(luò)環(huán)境較差時,可以在用戶毫無感知的條件下稍微降低播放速度,然后來解決短暫出現(xiàn)的網(wǎng)絡(luò)抖動所引起的卡頓情況,當網(wǎng)絡(luò)恢復(fù)后,還可以快速追趕回來。需要注意的是,這種方式并不適合所有的應(yīng)用場景。 (3)碼率自適應(yīng),也就是說選擇合適的碼率來做動態(tài)傳輸。為了保證流暢度可以適當調(diào)整分辨率和幀率,當然,語音視頻引擎會根據(jù)當前的網(wǎng)絡(luò)測速結(jié)果和應(yīng)用需要的碼率,動態(tài)調(diào)整碼率、幀率和分辨率,以此達到流暢觀看的用戶體驗。 ![]() (4)在推流端做一些分層的編碼,這樣一來,在拉流端可以動態(tài)的根據(jù)偵測到的網(wǎng)絡(luò)帶寬情況來拉取不同的數(shù)據(jù)去做渲染。而分層編碼允許拉流端選擇不同層次的視頻編碼數(shù)據(jù),網(wǎng)絡(luò)情況好的時候,就選取較多層次的數(shù)據(jù),網(wǎng)絡(luò)情況差的情況下,就選取基礎(chǔ)層次的數(shù)據(jù)。 (5)在推拉流端監(jiān)測當前推拉流質(zhì)量比較差時,即使通過降低碼率、分辨率和幀率等策也無法保證質(zhì)量時,可以選擇放棄此鏈路。 3.回聲消除 先簡單介紹一下回聲消除的原理,對端發(fā)送的信號會先給到回聲消除的模塊,作為將來消除的參考信號,再將信號給到揚聲器播放,播放后由于周圍環(huán)境反射形成回聲,與真實的音頻輸入一同被麥克風采集,這時采集到的輸入信號是帶有回聲的,回聲消除模塊會根據(jù)前面的參考信號生成濾波抵消掉會回聲后再發(fā)送出去。至于回聲消除的問題,谷歌開源的WebRTC提供了回聲消除模塊,但它本身設(shè)計是為了在PC端實現(xiàn)音視頻互動場景,在移動端的適應(yīng)性較差,尤其是Android端。 4. 國內(nèi)外互通 這一點適用于海外運營的用戶,流媒體數(shù)據(jù)和控制信令就需要做好跨國互通,所以要考慮在全球合理布置一些中繼節(jié)點。數(shù)據(jù)路徑的選擇是需要根據(jù)業(yè)務(wù)決定的,也就是說在物理鏈路路由之上還需要再有一條業(yè)務(wù)的路由表,并且根據(jù)用戶的場景制定,比如用戶分布、訪問頻率或高頻段峰值等??赡苊看蔚穆酚啥紩煌?。 ![]() 5. 海量并發(fā) 這是所有的互聯(lián)網(wǎng)相關(guān)產(chǎn)品都會遇到的問題,主要考慮負載均衡,如何平滑擴容,對于無法覆蓋的地方要做代理調(diào)度,甚至需要考慮容災(zāi)、接入層的設(shè)計等等,再此就不多做贅述。 由此可見,在開發(fā)過程中不僅需要優(yōu)質(zhì)的一對一源碼作為“輔助”,還需要考慮多方面因素和可能發(fā)生的問題,只有這樣才能開發(fā)出真正優(yōu)質(zhì)的直播app。如若不然,將會在直播領(lǐng)域中就此“銷聲匿跡”。 本文聲明原創(chuàng),轉(zhuǎn)載請注明出處。 |
|
來自: 昵稱61929548 > 《文件夾1》