首先第一步,採集,iOS是比較簡單的,Android則要做些機型適配工作,PC最麻煩各種奇葩攝像頭驅動,出了問題特別不好處理,建議放棄PC只支持手機主播,目前幾個新進的直播平台都是這樣的。

第二步,前處理,現在直播美顏已經是標配了,80%的主播沒有美顏根本沒法看。美顏演算法需要用到GPU編程,需要懂圖像處理演算法的人,沒有好的開源實現,要自己參考論文去研究。難點不在於美顏效果,而在於GPU佔用和美顏效果之間找平衡。GPU雖然性能好,但是也是有功耗的,GPU佔用太高會導致手機發燙,而手機發燙會導致攝像頭採集掉幀,iPhone6尤其明顯,因為iPhone6的CPU和前置攝像頭很近。

第三步,編碼,肯定要採用硬編碼,軟編碼720p完全沒希望,勉強能編碼也會導致CPU過熱燙到攝像頭。硬編碼兼容性又是一個大坑,android上要有人去填。編碼要在解析度,幀率,碼率,GOP等參數設計上找到最佳平衡點。

第四步,傳輸,自己做不現實,交給CDN服務商吧,也就是貴了點,相信有志於做直播平台改變世界的你不差錢。假設2W PCU大約每月帶寬費用100萬左右,因為清晰流暢的720p要1.5mbps左右。CDN只提供了帶寬和伺服器間傳輸,發送和接收端的網路連接抖動緩衝還是要自己寫的。不想要卡頓,必然要加大緩衝,會導致延遲高,延遲高影響互動性,要做權衡。

要想用於推流還必須把音視頻數據使用傳輸協議進行封裝,變成流數據。常用的流傳輸協議有RTSP、RTMP、HLS等,使用RTMP傳輸的延時通常在1–3秒,對於移動直播這種實時性要求非常高的場景,RTMP也成為移動直播中最常用的流傳輸協議。最後通過一定的Qos演算法將音視頻流數據推送到網路斷,通過CDN進行分發。在直播場景中,網路不穩定是非常常見的,這時就需要Qos來保證網路不穩情況下的用戶觀看直播的體驗,通常是通過主播端和播放端設置緩存,讓碼率均勻。另外,針對實時變化的網路狀況,動態碼率和幀率也是最常用的策略。

當然,在網路傳輸方面全部自己來做基本不現實,找提供推流服務的CDN服務商提供解決方案是最好的選擇。據了解,阿里雲是國內唯一能自研CDN緩存伺服器的廠商,性能非常有保障。當然,大多數直播平台都會同時接入多個視頻雲服務提供商,這樣可以做拉流線路互備,對推流後視頻集群再進行優化也可提高直播的流暢性和穩定性。

那麼如何選擇一個靠譜的源碼公司呢?

1.技術

2.安全、穩定、流暢、

3.性價比

對於直播源碼的開發有著很大的經驗與保障。個人自建一個直播平台幾乎是不可能完成的,一個直播系統的搭建需要各部分技術人員互相配合完成的,個人自建的需要付出很大的時間精力和財力,而且難以保證後期平台運營的穩定。專業的團隊會有更穩定的保障。

推薦閱讀:

相关文章