現(xiàn)在有一些廠家在做視頻直播系統(tǒng)這方面的服務,可能是這塊相對于其他行業(yè)來說比較新,即便是國內大廠的產品也是充滿了各種神坑,開發(fā)起來真是一把淚??!鈉斯網絡為了大家少走歪路,在這里總結了直播源碼開發(fā)搭建經驗提供給大家!

一、視頻直播源碼搭建:
可以分為采集、前處理、編碼、傳輸、解碼、渲染, 推流, 拉流、連麥、直播、互動等幾個環(huán)節(jié)如下:
1、采集:包含圖像采集和音頻采集:
圖像采集設置前置攝像頭、后置攝像頭,并配置采集的參數(shù)、圖像數(shù)據(jù)的長寬、fps、輸出的方向、橫屏豎屏等,然后從回調中取到數(shù)據(jù)。音頻采集和編碼主要面臨的挑戰(zhàn)在于:噪聲消除(Denoise)、回聲消除(AEC)算法等。前期不需要音頻數(shù)據(jù)處理需求的時候, 只需配置音頻采集的采樣頻率、采樣精度和聲道。
2、前處理:
①現(xiàn)在直播系統(tǒng)源碼美顏已經是標配了,80%的主播沒有美顏根本沒法看。
②美顏算法需要用到GPU編程,需要懂圖像處理算法的人,沒有好的源碼難以實現(xiàn)。難點不在于美顏效果,而在于GPU占用和美顏效果之間找平衡。
③GPU雖然性能好,但是也是有功耗的,GPU占用太高會導致手機發(fā)燙,而手機發(fā)燙會導致攝像頭采集掉幀,可能原因是過熱會導致CPU降低主頻。

3、編碼:
①直播源碼開發(fā)硬編碼兼容性問題,android要有人去填。
②要采用硬編碼,軟編碼720p完全沒希望,勉強能編碼也會導致CPU過熱燙到攝像頭。編碼要在分辨率、幀率、碼率、GOP等參數(shù)設計上找到最佳平衡點。
4、傳輸:
①封包最主要注意的一個點是時間戳。
②因為用的 AVPacket 封包,每個包都會有一DST(Decode Time Stamp)、PST (Presentation Time Stamp) 參數(shù),從字面上可以理解,就是解碼時間和顯示時間,在沒有 B 幀存在的情況下 DTS 的順序和 PTS 的順序應該是一樣的。
③這塊還涉及到重連和丟幀,用戶的網絡情況波動斷開了,會進行重連。不想要卡頓,必然要加大緩沖,會導致延遲高,延遲高影響互動性,要做權衡。
④音頻降噪:音頻編碼器的選擇,各種藍牙耳機,各種播放模式的適配等如果你想做主播和觀眾連線聊天,還有個回聲消除問題。

5、解碼和渲染:
①拉流獲取封裝的視頻數(shù)據(jù)后,必須通過解碼器解碼、渲染后才能在播放器上播放
②它是編碼的逆過程,是指從音視頻的數(shù)據(jù)中提取原始數(shù)據(jù)。前面介紹的H.264和H.265編碼格式都是有損壓縮,所以在提取后的原始數(shù)據(jù),并非原始采樣數(shù)據(jù),存在一定的信息丟失。因此,在視頻體積最小的情況下通過直播系統(tǒng)源碼參數(shù)保留最好的原始畫面。
6、推流:
①要想用于推流還必須把音視頻數(shù)據(jù)使用傳輸協(xié)議進行封裝,變成流數(shù)據(jù)。
②常用的流傳輸協(xié)議有RTSP、RTMP、HLS等,使用RTMP傳輸?shù)难訒r通常在1–3秒,對于手機直播這種實時性要求非常高的場景,RTMP也成為手機直播中最常用的流傳輸協(xié)議。
7、拉流:
①實際是推流的逆過程
②首先通過播放端獲取碼流,標準的拉流格式有RTMP、HLS、FLV等。
③RTMP是Adobe的專利協(xié)議,開源軟件和開源庫都支持的比較好,如開源的librtmp庫,播放端只要支持flashPlayer的就能非常簡單的播放RTMP直播,直播系統(tǒng)延遲一般在1–3秒。
⑤HLS是蘋果提出的基于HTTP的流媒體傳輸協(xié)議,HTML5可以直接打開播放,通過微信、QQ等軟件分享出去,用戶也可以直接觀看直播,可以說手機直播APP,HLS拉流協(xié)議是必須支持的。

二、視頻直播源碼連麥功能:
1、視頻直播過程中,主播與觀眾通過麥克風、攝像頭等工具溝通交流。
2、幫助雙方進行更有高效地溝通,也可以為更多行業(yè)場景帶來極大的體驗提升。而連麥技術的創(chuàng)新更是使得直播中多人連麥互動成為可能。
以上是直播系統(tǒng),還有信息控設置、登錄、權限管理、狀態(tài)管理等等各種應用服務。消息推送、聊天、禮物系統(tǒng)、支付系統(tǒng)、運營支持系統(tǒng)。后臺還有數(shù)據(jù)庫、緩存、分布式文件存儲、消息隊列、運維系統(tǒng)等。
三、鈉斯網絡提供直播源碼開發(fā)定制服務:
1、PC端:
需要下載一個客戶端發(fā)起直播,在直播源碼后臺logo,直播系統(tǒng)平臺跳轉鏈接域名,客戶端相關下載鏈接,直播間分享鏈接域名,整個客戶端的圖標品牌信息都改成了我們公司的信息
2、移動端:
移動端發(fā)起直播下載一個直播app:直播app圖標、啟動頁、登錄界面、品牌信息也改成我們的信息。
3、觀看端:
粉絲在直播間觀看直播時全都是顯示我們的品牌信息。著力打造了自己的視頻直播系統(tǒng) 、美顏 、打賞、紅包、回放功能齊全,沒有卡頓過,出了問題也有技術專家1對1對接。
鈉斯網絡 觀點:一個好的直播源碼開發(fā)平臺在技術方面的要求很高,尤其是CDN一塊專業(yè)性很強,要么就用標準化的技術解決方案——畢竟直播源碼平臺技術只不過決定著及格線,真正的核心競爭力在于產品和運營。
