喜歡就點關注哦~
直播平台搭建
直播間從2015年直播元年開始,到現在依然火熱不衰,直播在2015年還是相對神秘,但是如今更多的人會想要去了解、熟悉它,就要去解開這層面紗,今天小編就教你如何從零開始搭建自己的直播系統。
直播間功能
我們先從市面上主流的直播間功能說起,先看看直播平台最基礎要具備什麼樣的功能。
1. 視訊直播功能:這是最基礎的功能,主播端将視訊資料推送出去,觀衆端進行接收觀看,這就需要RTMP推流功能的支援才能實作,并且這一步也會決定畫面的清晰度和流暢程度。
2. 聊天功能:觀衆可以在互動區進行文字聊天,和主播對話,想說就說。
3. 禮物打賞功能:觀衆可以對喜愛的女主播進行禮物打賞,遊艇、跑車、甚至城堡走起來等等。
4. 支付/提現功能:使用者為喜愛的直播進行禮物打賞或者守護,主播收到禮物或接受守護後,可将收到的平台虛拟币兌換成現金提取出。
5. 視訊回放功能:直播時同時錄屏,随時随地,想看回放就看回放,粉絲再也不會錯過喜愛的主播直播的精彩内容。
6. 分享功能:将主播頻道或首頁分享到微信、微網誌或者别的平台。
功能是半成品,怎麼使用才賦予平台完整性
技術子產品架構
那麼由功能出發,來看看我們如何搭建一個基礎的直播平台呢。
視訊直播功能其實就是從推流到拉流的過程,基本構成也是由以下幾部分構成:
其實這些也是有一些雲服務商會提供一整套服務的,比如七牛,聲網,騰訊雲,金山雲等推流服務商。這裡就不多做闡述,具體價格和服務需要咨詢他們,本文隻說技術相關。
采集部分,iOS是比較簡單的,因為機型相對固定以及采集方向相對固定,Android則要做些機型适配工作,PC最麻煩各種奇葩攝像頭驅動,出了問題特别不好處理,建議放棄PC隻支援手機主播,目前大部分的美女直播平台都是這樣的,遊戲直播平台則略有不同。
處理部分,其實針對視訊幀的預處理,現在直播美顔已經是标配了,80%的主播沒有美顔根本沒法看。美顔算法需要用到GPU程式設計,需要懂圖像處理算法的人,沒有好的開源實作,要自己參考論文去研究。難點不在于美顔效果,而在于GPU占用和美顔效果之間找平衡。GPU雖然性能好,但是也是有功耗的,GPU占用太高會導緻手機發燙,而手機發燙會導緻攝像頭采集掉幀,可能原因是過熱會導緻CPU降低主頻。這是全局美顔,還需要針對臉部的調整,比如最普遍的大眼瘦臉,還有瘦下巴,調整額頭高度,鼻翼寬度等,拍攝起來不亞于一場外科手術了。這個就需要配合人臉追蹤算法來進行調整,先得識别人臉五官部位,再正對特定部位進行不同方法的圖形學渲染,基于這些技術,貼紙道具什麼也都不是問題。是以基礎美顔難度不大,用上了人臉追蹤的美顔就價格高點,因為畢竟人臉追蹤現在成本還是比較高的。自己如果做基礎美顔難度低,成本也不高,但是一旦要做美型,成本高,周期長,也可以考慮采購第三方的SDK,比如我們拓幻TiFancy~
編碼,可以采用寫死或者軟編碼720p以上,軟編會導緻CPU過熱。能耗過高,之後自然會卡頓,編碼要在分辨率,幀率參數設計上找到最佳平衡點,讓能耗和效果之間互相協調。視訊-編碼格式:H.265、H.264、MPEG-4等,封裝容器有TS、MKV、AVI、MP4等。現在比較常用的視訊編碼是H.264。音頻-編碼格式:G.711μ、AAC、Opus等,封裝有MP3、OGG、AAC等,比較常用的是AAC編碼格式。視訊經過編碼壓縮大大提高了視訊的存儲和傳輸效率,當然,經過壓縮後的視訊在播放時必須進行解碼。
傳輸,将編碼完成後的音視訊資料進行傳輸,早期的音視訊通過同軸電纜之類的線纜進行傳輸,IP網絡發展後,使用IP網絡優傳輸。這個就肯定要采購雲平台的CDN服務了,這個錢不花是不現實的。當然CDN隻提供了帶寬和伺服器間傳輸,發送和接收端的網絡連接配接抖動緩沖還是要自己做的。如果平台需要提高高品質的直播,這些是需要考慮的,如果前期沒這個能力,也不是必備的功能啦,可以後期再做。涉及技術或協定:
傳輸協定:RTP與RTCP、RTSP、RTMP、HTTP、HLS(HTTP LiveStreaming)等
控制信令:SIP和SDP、SNMP等
轉碼、解碼,也肯定要相容軟/硬解碼,目前手機普遍支援硬解了,這些功能其實如果采購第三方雲平台的推流SDK服務,都是一站式搞定的,至于采購哪家的,肯定是見仁見智的事情,畢竟價格和性能都是需要綜合考慮的,比如騰訊雲、聲網、七牛雲、金山雲等。
整體過程可以這麼了解:
平台搭建,當快則快
打破你對技術的種種限制
颠覆你小心翼翼藏着掖着的預算
我們要最快的平台,要有心意的設計
要低廉的成本,要有花樣的功能
怎麼才能做到,SDK來幫您
特色功能
OK,說完基本構成,我們再說一下特色功能:
比如評論聊天、連麥互動、收費房間、密碼房間、禮物打賞等特色功能,也是為直播平台提供更多可能和更多想象空間。
評論聊天可以采用IM方式進行實作,IM提供商也比較多,可以采用環信、網易雲等,也可以自己進行實作,因為這個功能不是屬于即時音視訊通信,沒有很複雜。
連麥互動就是屬于即時音視訊通信了,這個其實自己實作就有點本末倒置,過于浪費時間,并且就算用TCP協定實作了基礎功能,穩定性和流暢度也沒有保障。
收費、密碼房間就屬于平台搭建時進行實作的功能,這個對于普通前端工程師而言不是很大的挑戰。
禮物打賞就涉及到支付管道的對接,和渲染功能實作,比如收到費用後,要在螢幕渲染一些特定的特效,比如遊艇走起來,火箭biubiubiu~
最後,我們來算一下人力和預算,團隊至少有10個技術人員,10個産品營運團隊,3個月左右能夠全部搭建完畢,并上線推廣,成本在100w左右,并且帶寬支出也是一筆不小的開銷。
是以不要盲目開始搭建,其實開發順序可以考慮:第三方一站式搭建 > 內建各項功能SDK > 從零開始開發
第三方平台搭建我這裡就不多推薦了,畢竟廣告太多也不會,百度一搜也有很多,當然,我們拓幻科技也可以做啦~
end