怎么創(chuàng)建直播平臺
時間:2023-06-26 21:27:02 | 來源:網(wǎng)站運(yùn)營
時間:2023-06-26 21:27:02 來源:網(wǎng)站運(yùn)營
怎么創(chuàng)建直播平臺:現(xiàn)在直播應(yīng)用非常火爆,它以生動直觀的方式向用戶傳達(dá)最真實(shí)的現(xiàn)場信息,受到廣大用戶的普遍歡迎。小編作為一名技術(shù)人員,經(jīng)常開發(fā)各種直播平臺,(娛樂直播、游戲直播、教育直播、財經(jīng)直播等)下面我把自己積累的一些經(jīng)驗(yàn)分享給大家,希望和大家一起交流學(xué)習(xí),共同進(jìn)步。
第一步,移動端視音頻采集
首先,對于手機(jī)端的視音頻采集編碼技術(shù),我們有過類似的經(jīng)驗(yàn)??紤]到手機(jī)的處理能力,我們的技術(shù)路線是利用手機(jī)自身核心處理器的視頻編碼能力來完成。在Android端調(diào)用Mediacodec開發(fā)接口來實(shí)現(xiàn),iOS端調(diào)用蘋果提供的Core Video框架來實(shí)現(xiàn),編碼格式上我們采用H.264視頻編碼和AAC音頻編碼,通過硬件編碼方式極大地降低了移動終端的CPU負(fù)荷與功耗,。在協(xié)議的選擇上,我們采用當(dāng)前主流的RTMP協(xié)議由客戶端向服務(wù)器端推送數(shù)據(jù)。RTMP是Adobe公司制定的一款流傳輸一些,結(jié)構(gòu)比較簡單,自己研究就能搞定,而且這款協(xié)議在行業(yè)內(nèi)應(yīng)用非常廣泛,便于不同產(chǎn)品的集成。
第二步,內(nèi)容的發(fā)布和轉(zhuǎn)碼
前端設(shè)備將直播的視音頻內(nèi)容采集處理后,首先推送給平臺的源站服務(wù)器,我們將源服務(wù)器部署在了杭州本地的運(yùn)營商骨干節(jié)點(diǎn)機(jī)房(近距離便于維護(hù))。源服務(wù)器采用多機(jī)集群熱備份機(jī)制,防止一臺源站服務(wù)器宕機(jī)后影響整個平臺的穩(wěn)定運(yùn)行。
源站服務(wù)器連接有專業(yè)的磁盤陣列存儲設(shè)備,當(dāng)源站服務(wù)器接收到數(shù)據(jù)后,首先復(fù)制N份轉(zhuǎn)發(fā)給下面的N個二級CDN節(jié)點(diǎn),同時復(fù)制一份給轉(zhuǎn)碼服務(wù)器。轉(zhuǎn)碼服務(wù)器將接收到的每一個流進(jìn)行實(shí)時的轉(zhuǎn)碼,主要是將高清碼流轉(zhuǎn)換一份標(biāo)清碼流給小屏移動終端,移動終端接收標(biāo)清小碼流不僅符合自身的小屏分辨率需要,同時可以降低對移動端的解碼能力要求,還能有效節(jié)省帶寬成本。
第三步,流媒體發(fā)布
流媒體發(fā)布這個環(huán)節(jié)對于整個平臺來說也是至關(guān)重要,因?yàn)樽罱K面向終端用戶提供服務(wù)的是分布在全網(wǎng)的流媒體服務(wù)器,流媒體服務(wù)器的穩(wěn)定性以及性能優(yōu)劣決定著終端用戶的體驗(yàn)效果和平臺的運(yùn)營成本。根據(jù)之前做IPTV的經(jīng)驗(yàn),我們在這個項(xiàng)目中選擇的技術(shù)路線還是自行開發(fā),當(dāng)然還是基于之前做IPTV流媒體服務(wù)器的基礎(chǔ)來做,核心技術(shù)點(diǎn)又有如下的改進(jìn):
1. 流媒體服務(wù)器還是采用C語言實(shí)現(xiàn),保障運(yùn)行效率最高;
2. 將之前的多進(jìn)程模型改成異步IO模型,提高服務(wù)器的并發(fā)處理性能;
3. 在協(xié)議層上增加對RTMP、HLS協(xié)議的支持;
4.引入hadoop這一分布式架構(gòu),便于大規(guī)模分布式部署、調(diào)度和容錯;
通過這些改進(jìn),流媒體服務(wù)器的整體性能又會有一個質(zhì)的飛躍。
第四步,CDN內(nèi)容分發(fā)
這方面是我的業(yè)務(wù)特長所在,與我之前做IPTV平臺的技術(shù)路線相同,主要是對流媒體數(shù)據(jù)在全網(wǎng)范圍內(nèi)的多個節(jié)點(diǎn)之間進(jìn)行快速的分發(fā),從而提高終端用戶的體驗(yàn)效果。
在協(xié)議的選擇上,我們根據(jù)直播和點(diǎn)播應(yīng)用的特點(diǎn),支持RTMP協(xié)議、HTTP協(xié)議、UDP協(xié)議這三個類型。
節(jié)點(diǎn)服務(wù)器的建設(shè)方面,我們根據(jù)國內(nèi)互聯(lián)網(wǎng)的整體布局,采用中心節(jié)點(diǎn)->各省級節(jié)點(diǎn)->地市級節(jié)點(diǎn) 三級架構(gòu)模式,把主要的用戶流量首先引導(dǎo)到第三級節(jié)點(diǎn),然后是第二級節(jié)點(diǎn),之所以這樣設(shè)計(jì),主要因?yàn)樵降街行〕鞘?,帶寬價格越低,這樣可以極大地節(jié)省后期的運(yùn)營成本。
第五步,終端播放器開發(fā)
在終端的解碼回放部分,我們考慮自行開發(fā)PC、Android和iOS三個終端的播放器,由于三種終端采用不同的操作系統(tǒng)平臺,因此我們成立了三個開發(fā)小組來分別完成,下面講一下技術(shù)路線:
PC端:
采用行業(yè)內(nèi)主流的技術(shù)路線,基于Adobe的Flash Player做應(yīng)用層開發(fā),這也是當(dāng)前最成熟時的技術(shù)路線。為了縮短開發(fā)周期,我們基于Adobe的OSMF播放器框架來做,開發(fā)周期控制在2個月以內(nèi)比較可行。
Android端:
Android端的播放器開發(fā)我們首先考慮到的是終端的解碼性能,因?yàn)榻獯a框架有多個可選,比如FFMPEG、VLC、MediaPlayer API、Exoplayer等,從我們自身的熟悉程度和項(xiàng)目的可控性上考慮,最終決定采用google的Exoplayer做二次開發(fā),開發(fā)周期可以控制在2個月以內(nèi)。
iOS端:
iOS端的播放器也是基于同樣的考慮,我們選擇了蘋果提供的VideoToolbox開發(fā)接口,通過它可以直接調(diào)用蘋果處理器自帶的硬件解碼功能,這樣可以大大降低設(shè)備的功耗,延長電池的續(xù)航時間。
以上就是小編怎么創(chuàng)建播平臺的一段經(jīng)歷和收獲的一點(diǎn)點(diǎn)經(jīng)驗(yàn),記錄下來既是對自己的總結(jié),同時也想與各位創(chuàng)業(yè)者和同行一起分享,希望對大家有所幫助。如果您有不同的見解,歡迎咨詢交流!
關(guān)鍵詞:平臺,直播,創(chuàng)建