如何搭建一套完整的視頻直播系統
如何搭建一套完整的視頻直播系統
視頻直播,可以分為 采集,前處理,編碼,傳輸,解碼,渲染 這幾個環節,下面分別說下:
采集,iOS是比較簡單的,Android則要做些機型適配工作,PC最麻煩各種奇葩攝像頭驅動,出了問題特別不好處理,建議放棄PC只支持手機主播,目前幾個新進的直播平臺都是這樣的。
前處理,現在直播美顏已經是標配了,80%的主播沒有美顏根本沒法看。美顏算法需要用到GPU編程,需要懂圖像處理算法的人,沒有好的開源實現,要自己參考論文去研究。難點不在于美顏效果,而在于GPU占用和美顏效果之間找平衡。GPU雖然性能好,但是也是有功耗的,GPU占用太高會導致手機發燙,而手機發燙會導致攝像頭采集掉幀,iPhone6尤其明顯,因為iPhone6的CPU和前置攝像頭很近。
編碼,肯定要采用硬編碼,軟編碼720p完全沒希望,勉強能編碼也會導致CPU過熱燙到攝像頭。硬編碼兼容性又是一個嘩猛大坑,android上要有人去填。編碼要在分辨率,幀率,碼率,GOP等參數設計上找到最佳平衡點。
傳輸,自己做不現實,交給CDN服務商吧,也就是貴了點,相信有志于做直播平臺改變世界的你不差錢。假設2W PCU大約每月帶寬費用100萬左右,因為清晰流暢的720p要1.5mbps左右。CDN只提供了帶寬和服務器間傳輸,發送和接收端亂叢橋的網絡連接抖動緩沖還是要自己寫的。不想要卡頓,必然要加大緩沖,會導致延遲高,延遲高影響互動性,要做權衡。
解碼,也肯定要硬解碼,目前手機普遍支持硬解了,只是android上還是有兼容性大坑要填。
渲染,這個難點不在于繪制,而在于音畫同步,目前幾個直播做得都不好。
此外音頻還有幾個坑要填,比如鄭絕降噪,音頻編碼器的選擇,各種藍牙耳機,各種播放模式的適配等,如果你想做主播和觀眾連線聊天,還有個回聲消除問題。
以上是媒體模塊,還有信令控制,登錄、鑒權、權限管理、狀態管理等等,各種應用服務,消息推送,聊天,禮物系統,支付系統,運營支持系統,統計系統等。
后臺還有數據庫,緩存,分布式文件存儲,消息隊列,運維系統等。
第一期至少要融資2000萬RMB,組建至少10人的技術團隊,10人的產品運營團隊,爭取3個月產品上線,半年達到5W在線(2w 根本不夠)然后融資1個億,或許還有希望一搏。
這些對于創業者來說是一個難度系數非常大,創業初期還是建議接入第三方的直播SDK,可以節省成本,趣拍直播還是很不錯的,不管是轉碼還是推流,支持1000多萬人在線不卡頓,可以去了解下。
祝你朋友好運。