
一對(duì)一直播平臺(tái)搭建從環(huán)境部署開(kāi)始,這包括兩方面的環(huán)境部署即服務(wù)端和客戶端。
服務(wù)端
在部署服務(wù)端環(huán)境其實(shí)包含很多東西的,最常用的web服務(wù)nginx,MySQL、Nosql,api開(kāi)發(fā)最多的三種選擇:
java環(huán)境,需要jdk,tomcat/jboss
php環(huán)境,需要安裝php,odp
lua環(huán)境,需要安裝lua、luajit
考慮使用緩存技術(shù),則主要包含redis和memcached。如果還要其他的日志統(tǒng)計(jì)(kafka什么的)需求則還需要更多的環(huán)境,我們這里不討論,只是簡(jiǎn)單敘述
對(duì)于直播而言,我們需要部署兩個(gè)東西,nginx(含nginx-rtmp-module)、ffmpeg,這兩個(gè)是直播服務(wù)端的關(guān)鍵。
客戶端
相對(duì)于服務(wù)端環(huán)境部署來(lái)說(shuō)客戶端環(huán)境部署復(fù)雜很多,尤其是在Android平臺(tái),編譯導(dǎo)入Android studio等等過(guò)程都很復(fù)雜,ios平臺(tái)還好,對(duì)于客戶端主要就是編譯ffmpeg。
一對(duì)一直播平臺(tái)的三種搭建方式簡(jiǎn)述
方法一
FFmpeg實(shí)時(shí)推流攝像頭,Nginx RTMP模塊轉(zhuǎn)發(fā),VLC播放器播放實(shí)現(xiàn)直播(`測(cè)試通過(guò)`):
1. 推流:
1.1 查看本機(jī)電腦的設(shè)備
1.2 FFmpeg編碼推送到RTMP服務(wù)器
2. 拉流 (畫(huà)面中的人物請(qǐng)忽略 )
方法二
obs+nginx+vlc搭建流媒體直播平臺(tái)
1 流服務(wù)設(shè)置
2 打開(kāi)流服務(wù):
3 obs推流設(shè)置 (這里我沒(méi)有加端口號(hào))
5 vlc拉流設(shè)置
方法三
結(jié)合業(yè)務(wù)需求,把實(shí)時(shí)風(fēng)格轉(zhuǎn)移,在直播流中實(shí)現(xiàn)(測(cè)試通過(guò))
1. 推流
2. 實(shí)現(xiàn)是先拉流,然后實(shí)現(xiàn)風(fēng)格的轉(zhuǎn)移
3. 測(cè)試結(jié)果
一對(duì)一直播平臺(tái)搭建中系統(tǒng)功能的優(yōu)化
1、主播認(rèn)證
一對(duì)一直播平臺(tái)應(yīng)該與傳統(tǒng)直播平臺(tái)一致,具有真實(shí)的主播認(rèn)證頁(yè)面。這里我們可以將認(rèn)證功能放到用戶個(gè)人中心頁(yè)面,點(diǎn)擊進(jìn)入認(rèn)證功能頁(yè)面后,除了要上傳身份證,填寫(xiě)相關(guān)真實(shí)信息之外,在用戶資料中也要進(jìn)行明確的標(biāo)識(shí)。
一對(duì)一直播平臺(tái)搭建,優(yōu)化
2、主播列表推薦機(jī)制
假設(shè)平臺(tái)有推薦主播、新人主播、關(guān)注主播三個(gè)列表。針對(duì)三個(gè)不同的列表我們可以建立以下的推薦機(jī)制:
推薦主播列表和新人主播類表,可以按照在線>活躍>在聊的順序進(jìn)行排序,如果想要遵循平臺(tái)的推薦機(jī)制,首先主播必須是在線狀態(tài),其次要看一下主播的活躍度(在線時(shí)長(zhǎng)、開(kāi)播時(shí)長(zhǎng)等因素),最后如果主播是在聊狀態(tài),那可以往后排序(畢竟是一對(duì)一直播,主播在聊狀態(tài)下,其他用戶就無(wú)法再發(fā)起1v1直播的請(qǐng)求)。如果出現(xiàn)同等狀態(tài)(即主播在線狀態(tài)、活躍值相同),可再根據(jù)主播等級(jí)進(jìn)行排序,當(dāng)然也可以根據(jù)平臺(tái)運(yùn)營(yíng)的需求,在管理后臺(tái)設(shè)置推薦機(jī)制,人為將主播排序提前。