1. 程式人生 > >手機直播原始碼功能及系統開發流程

手機直播原始碼功能及系統開發流程

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

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

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

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

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

藉助bogo18直播行業2018年平穩發展的東風,一對一直播平臺開發受到了廣泛地關注。正如直播原始碼那樣,通過一對一直播原始碼可以快速搭建部署一個一對一視訊直播平臺。而一對一直播平臺的功能具有更強的社交性,同時也有更加私密的直播體驗。

1.主播列表推薦機制

不論是傳統的直播平臺還是今年異常火爆的抖音短視訊,主播與視訊的智慧推薦機制是顯示了平臺的硬實力。這裡我們舉一個簡單可操作的關於一對一直播系統主播推薦機制的例子

假設平臺有推薦主播、新人主播、關注主播三個列表。針對三個不同的列表我們可以建立以下的推薦機制:

推薦主播列表和新人主播類表,可以按照線上>活躍>在聊的順序進行排序,如果想要遵循平臺的推薦機制,首先主播必須是線上狀態,其次要看一下主播的活躍度(線上時長、開播時長等因素),最後如果主播時在聊狀態,那可以往後排序(畢竟是一對一直播,主播在聊狀態下,其他使用者就無法再發起1v1直播的請求)。如果出現同等狀態(即主播線上狀態、活躍值相同),可再根據主播等級進行排序,當然也可以根據平臺運營的需求,在管理後臺設定推薦機制,人為將主播排序提前。

而關注主播列表則顯示的是使用者已關注的並通過平臺認證的主播,當然也可以參考推薦主播列表的推薦機制進行排序。這裡我們提到了平臺認證,不妨我們聊下認證機制的重要性。

2.關於系統認證機制

一對一直播平臺應該與傳統直播平臺一致,具有真實的主播認證頁面。這裡我們可以將認證功能放到使用者個人中心頁面,點選進入認證功能頁面後,除了要上傳身份證,填寫相關真實資訊之外,在使用者資料中也要進行明確的標識。一對一直播本身就具有私密性了,因此對於主播資訊的真實性更要嚴格稽核,同時也應該為平臺使用者展示真實的主播資訊,讓使用者全面瞭解主播後,才能更好地提升使用者體驗。

這裡我們可以結合主播的身份認證資訊,要求主播填寫真實的性別資訊,否則不予通過稽核,認證通過後也不能再修改性別資訊。在主播使用者中心的ID號後面要新增認證標識,如果主播沒有進行認證,除了不顯示認證標識外,還要強制主播跳轉到認證頁面進行認證。

3.關於預約一對一直播

一對一直播為使用者提供了私密的互動直播空間,但是如果主播不線上,而粉絲又不可能一直在平臺上乾等著,那該怎麼辦呢?我們可以新增預約功能,同時要針對主播不同的直播狀態給予粉絲不同的提示資訊。

對於離線的主播,在主播個人主頁點選“發起1v1直播”時,提示“當前主播已離線”,然後進行預約,在主播上線接受直播請求後會提示使用者主播已上線接受“1v1直播”。

對於在聊的主播,在主播個人主頁點選“發起1v1直播”時,提示“當前主播在聊”,然後主播可以在直播間收到“1v1直播”請求的訊息提醒,可以通過私信形式回覆使用者。

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