直播視頻APP搭建流程和服務器選擇?
視頻直播,可以分為 采集,前處理,編碼,傳輸,解碼,渲染 這幾個環節
采集,前處理,現在直播美顏已經是標配了,美顏算法需要用到GPU編程,需要懂圖像處理算法的人,沒有好的開源實現,要自己參考論文去研究。難點不在于美顏效果,而在于GPU占用和美顏效果之間找平衡。GPU雖然性能好,但是也是有功耗的,GPU占用太高會導致手機發燙,而手機發燙會導致攝像頭采集掉幀,可能原因是過熱會導致CPU降低主頻。
編碼,肯定要采用硬編碼,軟編碼720p完全沒希望,勉強能編碼也會導致CPU過熱燙到攝像頭。硬編碼兼容性又是一個大坑,android上要有人去填。編碼要在分辨率,幀率,碼率,GOP等參數設計上找到最佳平衡點。
傳輸,交給CDN服務商,也就是貴了點。假設2W PCU大約每月帶寬費用100萬左右,因為清晰流暢的720p要1.5mbps左右。CDN只提供了帶寬和視頻服務器間傳輸,發送和接收端的網絡連接抖動緩沖還是要自己寫的。不想要卡頓,必然要加大緩沖,會導致延遲高,延遲高影響互動性,要做權衡。
解碼,也肯定要硬解碼,目前手機普遍支持硬解了,只是android上還是有兼容性大坑要填。
渲染,這個難點不在于繪制,而在于音畫同步,目前幾個直播做得都不好。
此外音頻還有幾個坑要填,比如降噪,音頻編碼器的選擇,各種藍牙耳機,各種播放模式的適配等,如果你想做主播和觀眾連線聊天,還有個回聲消除問題。
以上是媒體模塊,還有信令控制,登錄、鑒權、權限管理、狀態管理等等,各種應用服務,消息推送,聊天,禮物系統,支付系統,運營支持系統,統計系統等。
后臺還有數據庫,緩存,分布式文件存儲,消息隊列,運維系統等。
直播app是都是用到視頻服務器來輔助完成直播的相關業務
斗魚、yy、戰旗、火貓這些游戲直播網站的服務器基本都是租借服務器,
做直播行業,選擇一個好的IDC尤為重要
做直播行業,主要看流量在哪方,如果是自己搭建平臺,則更看重帶寬和存儲,如果主要網絡應用,把本地終端搬運的內容上傳以及去別的內容平臺或者供方調用內容,這些是要跑流量,而且對帶寬要求比較大,一般一個30分鐘的視頻,就要好幾百m,視頻總量決定存儲需求,每天搬運量決定流量需求,量越大,對視頻服務器的處理性能也越高。
舉個例子,100m帶寬,理論下載峰值12.5mbps,正常10m,一個1G視頻,大約需要2分鐘,線路是要看視頻源,推介多線 BGP