直播項目技術(shù)實現(xiàn)方案(僅用于工作室內(nèi)部)

本篇主要探討利用第三方直播SDK開發(fā)直播平臺和自主研發(fā)直播平臺這兩種直播開發(fā)方案,暫分析iOS客戶端和服務(wù)器端的實現(xiàn),安卓端可參考iOS端實現(xiàn)方式。

熱門直播產(chǎn)品

映客,斗魚,熊貓,虎牙,花椒等等

1.常規(guī)直播app功能

1、聊天

私聊、聊天室、點亮、推送、黑名單等;

2、禮物

普通禮物、豪華禮物、紅包、排行榜、第三方充值、內(nèi)購、禮物動態(tài)更新、提現(xiàn)等;

3、直播列表

關(guān)注、熱門、最新、分類直播用戶列表等;

4、自己直播

錄制、推流、解碼、播放、美顏、心跳、后臺切換、主播對管理員操作、管理員對用戶等;

5、房間邏輯

創(chuàng)建房間、進入房間、退出房間、關(guān)閉房間、切換房間、房間管理員設(shè)置、房間用戶列表等;

6、用戶邏輯

普通登陸、第三方登陸、注冊、搜索、修改個人信息、關(guān)注列表、粉絲列表、忘記密碼、查看個人信息、收入榜、關(guān)注和取關(guān)、檢索等;

7、觀看直播

聊天信息、滾屏彈幕、禮物顯示、加載界面等

8、統(tǒng)計

APP業(yè)務(wù)統(tǒng)計、第三方統(tǒng)計等;

9、超管

禁播、隱藏、審核等;

2.直播app原理

直播原理:把主播錄制的視頻,推送到服務(wù)器,在由服務(wù)器分發(fā)給觀眾觀看。
直播環(huán)節(jié):推流端(采集、美顏處理、編碼、推流)、服務(wù)端處理(轉(zhuǎn)碼、錄制、截圖、鑒黃)、播放器(拉流、解碼、渲染)、互動系統(tǒng)(聊天室、禮物系統(tǒng)、贊)

3.直播app實現(xiàn)流程

1.采集、2.濾鏡處理、3.編碼、4.推流、5.CDN分發(fā)、6.拉流、7.解碼、8.播放、9.聊天互動

直播流程

4.直播app架構(gòu)

直播app架構(gòu)

5.自主研發(fā)--核心功能實現(xiàn)方案

1.采集視頻、音頻

使用AVFoundation實現(xiàn):AVFoundation是用來播放和創(chuàng)建實時的視聽媒體數(shù)據(jù)的框架,同時提供Objective-C接口來操作這些視聽數(shù)據(jù),比如編輯,旋轉(zhuǎn),重編碼

2.視頻處理(美顏,水?。?/h5>

使用GPUImage實現(xiàn): GPUImage是一個基于OpenGL ES的一個強大的圖像/視頻處理框架,封裝好了各種濾鏡同時也可以編寫自定義的濾鏡,其本身內(nèi)置了多達120多種常見的濾鏡效果。

3.視頻編碼解碼封裝

FFmpeg框架:是一個跨平臺的開源視頻框架,能實現(xiàn)如視頻編碼,解碼,轉(zhuǎn)碼,串流,播放等豐富的功能。其支持的視頻格式以及播放協(xié)議非常豐富,幾乎包含了所有音視頻編解碼、封裝格式以及播放協(xié)議。

4.推流

數(shù)據(jù)傳輸框架-librtmp:用來傳輸RTMP協(xié)議格式的數(shù)據(jù)

5.流媒體服務(wù)器

利用nginx來配置流媒體服務(wù)器,其中cdn分發(fā)技術(shù)是將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)”邊緣”,使用戶可以就近取得所需的內(nèi)容,解決 Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度.

6.拉流

選擇rtmp直播協(xié)議.

8.播放

使用b站開源的ijkplayer(API易于集成;編譯配置可裁剪,方便控制安裝包大??;支持硬件加速解碼,更加省電 簡單易用,指定拉流URL,自動解碼播放.)

9.聊天互動

融云作為直播的聊天室的技術(shù)實現(xiàn)基礎(chǔ)

6.借助第三方SDK--核心功能實現(xiàn)方案

1、利用第三方直播SDK快速的開發(fā)

七牛云:七牛直播云是專為直播平臺打造的全球化直播流服務(wù)和一站式實現(xiàn)SDK端到端直播場景的企業(yè)級直播云服務(wù)平臺,主要將自研流程中的視頻編碼解碼封裝,推流,流媒體服務(wù)器,拉流等環(huán)節(jié)幫我們封裝到sdk中,極大提高開發(fā)效率。

  • 熊貓TV,龍珠TV等直播平臺都是用的七牛云

互聯(lián)網(wǎng)直播是一種基于RTMP協(xié)議的業(yè)務(wù)。RTMP協(xié)議是一種基于TCP的協(xié)議。在實際的業(yè)務(wù)模型中,又分為客戶端和服務(wù)端??蛻舳酥饕抢肦TMP協(xié)議進行數(shù)據(jù)包的發(fā)送,一般稱之為推流。服務(wù)端主要用來接收客戶端發(fā)送過來的RTMP協(xié)議數(shù)據(jù)包,并轉(zhuǎn)發(fā)出去供訂閱的客戶播放,訂閱直播播放的客戶從服務(wù)端給出的一個地址請求數(shù)據(jù),請求的過程也是基于RTMP的協(xié)議,這個過程稱之為拉流。通常的情況下,直播的業(yè)務(wù)模型是一路推流到服務(wù)器,然后可能會有多路觀看的拉流請求,即1:N的模型。

七牛云直播服務(wù)的業(yè)務(wù)模型。
直播服務(wù)的業(yè)務(wù)模型

七牛云收費情況

7.兩種技術(shù)實現(xiàn)方案的評估

自研:

技術(shù)門檻較高,需要招聘這方面的人才,后期維護成本較大,服務(wù)端CDN分發(fā)要在國內(nèi)各地架設(shè)多臺服務(wù)器作為節(jié)點,單這一塊預(yù)估就好幾百萬。

借助sdk開發(fā):

對于一個初創(chuàng)團隊來講,自研直播不管在技術(shù)門檻、CDN、帶寬上都是有很大的門檻的,而且需要耗費大量的時間才能做出成品,不利于拉投資。但是借助sdk開發(fā)可以快速融入到市場,有較好的容錯性,在各大直播平臺瓜分市場的同時,將大部分資金用于運營 而不是開發(fā),有利于提高產(chǎn)品的競爭力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容