??2017年末显晶,一股直播答題的熱潮突然席卷網(wǎng)絡(luò)溪王。伴隨著王思聰在微博喊出“我撒幣,我樂(lè)意”的口號(hào)
1.資源質(zhì)量參數(shù)預(yù)估器(帶寬、CPU 和幀率等)
預(yù)估器從各種不同的維度獲取數(shù)據(jù)(塊大小挪钓,每片段下載時(shí)間,以及跳幀數(shù))嘁捷,并將其匯聚起來(lái)用于估算用戶(hù)可用的帶寬和CPU計(jì)算能力躏碳。這是輸出用于 ABR (Adaptive Bitrate, 自適應(yīng)碼率)切換控制器做判斷。
2.ABR切換控制器
ABR切換器可能是多媒體引擎中最為關(guān)鍵的部分——通常也是大家最為忽視的部分趁餐。該控制器讀取預(yù)估器輸出的數(shù)據(jù)(帶寬和跳幀數(shù))喷兼,使用自定義算法根據(jù)這些數(shù)據(jù)做出判斷,告訴流播放引擎是否需要切換視頻或者音頻質(zhì)量后雷。該領(lǐng)域有很多研究性的工作季惯,其中最大的難點(diǎn)在于在再緩沖風(fēng)險(xiǎn)和切換頻率(太頻繁的切換可能導(dǎo)致糟糕的用戶(hù)體驗(yàn))之間找到平衡。
3. DRM管理器(可選組件)
今天所有的付費(fèi)視頻服務(wù)都基于DRM管理臀突,而 DRM 則很大程度上依賴(lài)于平臺(tái)或者設(shè)備勉抓,我們將在后續(xù)講解播放器的時(shí)候看到。多媒體引擎中的 DRM 管理器是更底層解碼器中內(nèi)容解密 API 的包裝候学。只要有可能藕筋,它會(huì)盡量通過(guò)抽象的方式來(lái)屏蔽瀏覽器或者操作系統(tǒng)實(shí)現(xiàn)細(xì)節(jié)的差異性。該組件通常和流處理引擎緊密連接在一起梳码,因?yàn)樗?jīng)常和解碼器層交互隐圾。
4.格式轉(zhuǎn)換復(fù)用器(可選組件)
每個(gè)平臺(tái)在封包和編碼方面都有它的局限性(Flash讀的是 FLV 容器封裝的 H.264/AAC 文件伍掀,MSE 讀的是 ISOBMFF 容器封裝的 H.264/AAC 文件)。這就導(dǎo)致了有些視頻片段在解碼之前需要進(jìn)行格式轉(zhuǎn)換翎承。例如硕盹,有了 MPEG2-TS 到 ISOBMFF 的格式轉(zhuǎn)換復(fù)用器之后,hls.js 就能使用 MSE 格式的內(nèi)容來(lái)播放 HLS 視頻流叨咖。多媒體引擎層面的格式轉(zhuǎn)換復(fù)用器曾經(jīng)遭受質(zhì)疑瘩例;然而,隨著現(xiàn)代 JavaScript 或者 Flash 解釋權(quán)性能的提升甸各,它帶來(lái)的性能損耗幾乎可以忽略不計(jì)垛贤,對(duì)用戶(hù)體驗(yàn)也不會(huì)造成多大的影響。
對(duì)于手機(jī)直播APP開(kāi)發(fā)是一項(xiàng)龐大的工程趣倾,如果您想做一款屬于自己的手機(jī)直播APP聘惦,那么小編推薦您咨詢(xún)一下云豹網(wǎng)絡(luò)科技有限公司。他們經(jīng)過(guò)市場(chǎng)全面調(diào)研儒恋,對(duì)于手機(jī)直播APP開(kāi)發(fā)有著獨(dú)特的見(jiàn)解善绎,您肯定不會(huì)失望。