首頁(yè) 關(guān)于我們
  • 應(yīng)用市場(chǎng)

    云市場(chǎng)

    在這里您可以買到業(yè)務(wù)發(fā)展
    所需的各類產(chǎn)品和服務(wù),精
    選服務(wù)商,保障服務(wù)質(zhì)量,支持
    先使用再購(gòu)買,不滿意隨時(shí)
    退款。

    前往云市場(chǎng)

    AI智能體

    AI智能體

    六??萍紴槟峁┩晟贫?的客戶支持服務(wù)

    1V1大客戶服務(wù) 技術(shù)專家200+ 7×24小時(shí)服務(wù)
  • 新聞中心 六牛風(fēng)采 榮譽(yù)資質(zhì)

    直播間APP開(kāi)發(fā),架構(gòu)設(shè)計(jì)決定直播能否穩(wěn)定運(yùn)行

    2021-02-23 | 瀏覽數(shù):792

    直播間APP開(kāi)發(fā)的架構(gòu)設(shè)計(jì)對(duì)于直播來(lái)說(shuō),是決定直播能否穩(wěn)定運(yùn)行的因素之一。如果要做運(yùn)營(yíng)級(jí)的服務(wù)平臺(tái),需要采用分布式的架構(gòu)方式,不僅包括各個(gè)功能模塊的分布式部署,還包括各種應(yīng)用服務(wù)器的分布式部署,從而實(shí)現(xiàn)更好的服務(wù)冗余備份、平臺(tái)的健壯性和容錯(cuò)性、運(yùn)營(yíng)成本的有效控制,還有用戶體驗(yàn)效果的提升。主要有以下兩種架構(gòu)方式:

    1.普通的直播架構(gòu)

    相比其他的直播架構(gòu),這一架構(gòu)可以說(shuō)是非常簡(jiǎn)單的一種了。利用已有的CDN,然后再搭建一個(gè)信令服務(wù)器,就可以將服務(wù)層搭建完畢了。之后用戶可以先向信令服務(wù)器發(fā)送指令,然后通過(guò)相機(jī)或攝像頭采集音視頻數(shù)據(jù),經(jīng)編碼后通過(guò)RTMP協(xié)議將音視頻流推送到CDN。

    接收端服務(wù)器發(fā)送指令后,獲取音視頻流名稱,然后再?gòu)腃DN中拉取音視頻流,經(jīng)解碼后渲染在用戶端屏幕。

    2.實(shí)時(shí)交互的直播架構(gòu)

    這一找那個(gè)架構(gòu)相對(duì)比較復(fù)雜,其中最主要的就是增加了自有網(wǎng)絡(luò)。即客戶端通過(guò)UDP進(jìn)行數(shù)據(jù)傳輸,從而大幅度減少由于網(wǎng)絡(luò)或者是CDN結(jié)構(gòu)所導(dǎo)致的延時(shí)問(wèn)題。這個(gè)架構(gòu)下,都是通過(guò)UDP協(xié)議上傳到自有網(wǎng)絡(luò)服務(wù)器上,為了實(shí)現(xiàn)實(shí)時(shí)互動(dòng)的效果,其他的用戶也需要通過(guò)UDP來(lái)連接到自有網(wǎng)絡(luò)。但是音視頻數(shù)據(jù)上傳到自有網(wǎng)絡(luò)后,還需要通過(guò)專門的服務(wù),將音視頻數(shù)據(jù)流通過(guò)RTMP協(xié)議推到CDN上。這樣一來(lái),在直播中觀看但是不參與互動(dòng)的用戶也可以從CDN獲取音視頻數(shù)據(jù)了。

    視頻的編解碼也是直播間APP開(kāi)發(fā)不可忽視的點(diǎn)

    視頻處理框架

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

    OpenGL:OpenGL(全寫(xiě)Open Graphics Library)是個(gè)定義了一個(gè)跨編程語(yǔ)言、跨平臺(tái)的編程接口的規(guī)格,它用于三維圖象(二維的亦可)。OpenGL是個(gè)專業(yè)的圖形程序接口,是一個(gè)功能強(qiáng)大,調(diào)用方便的底層圖形庫(kù)。

    OpenGL ES:OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL三維圖形 API 的子集,針對(duì)手機(jī)、PDA和游戲主機(jī)等嵌入式設(shè)備而設(shè)計(jì)。

    視頻編碼框架

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

    Libswresample:可以對(duì)音頻進(jìn)行重采樣,rematrixing以及轉(zhuǎn)換采樣格式等操作。

    Libavcodec:提供了一個(gè)通用的編解碼框架,包含了許多視頻,音頻,字幕流 等編碼/解碼器。

    Libavformat:用于對(duì)視頻進(jìn)行封裝/解封裝。

    Libavutil:包含一些共用的函數(shù),如隨機(jī)數(shù)生成,數(shù)據(jù)結(jié)構(gòu),數(shù)學(xué)運(yùn)算等。

    Libpostproc:用于進(jìn)行視頻的一些后期處理。

    Libswscale:用于視頻圖像縮放,顏色空間轉(zhuǎn)換等。

    Libavfilter:提供濾鏡功能。

    直播間APP開(kāi)發(fā),架構(gòu)設(shè)計(jì)決定直播能否穩(wěn)定運(yùn)行,是在直播間APP開(kāi)發(fā)之初就該考慮好的關(guān)鍵點(diǎn),也是為后期運(yùn)營(yíng)打好基礎(chǔ),避免后期費(fèi)時(shí)費(fèi)力的維護(hù)。


    最新資訊

    立即咨詢

    7*8小時(shí)在線客服

    為您提供全面的尊貴服務(wù)

    立即咨詢

    營(yíng)業(yè)執(zhí)照
    魯ICP備2023028511號(hào)-1