??2017年末,一股直播答題的熱潮突然席卷網絡。伴隨著王思聰在微博喊出“我撒幣,我樂意”的口號
1.資源質量參數預估器(帶寬、CPU 和幀率等)
預估器從各種不同的維度獲取數據(塊大小,每片段下載時間,以及跳幀數),并將其匯聚起來用于估算用戶可用的帶寬和CPU計算能力。這是輸出用于 ABR (Adaptive Bitrate, 自適應碼率)切換控制器做判斷。
2.ABR切換控制器
ABR切換器可能是多媒體引擎中最為關鍵的部分——通常也是大家最為忽視的部分。該控制器讀取預估器輸出的數據(帶寬和跳幀數),使用自定義算法根據這些數據做出判斷,告訴流播放引擎是否需要切換視頻或者音頻質量。該領域有很多研究性的工作,其中最大的難點在于在再緩沖風險和切換頻率(太頻繁的切換可能導致糟糕的用戶體驗)之間找到平衡。
3. DRM管理器(可選組件)
今天所有的付費視頻服務都基于DRM管理,而 DRM 則很大程度上依賴于平臺或者設備,我們將在后續講解播放器的時候看到。多媒體引擎中的 DRM 管理器是更底層解碼器中內容解密 API 的包裝。只要有可能,它會盡量通過抽象的方式來屏蔽瀏覽器或者操作系統實現細節的差異性。該組件通常和流處理引擎緊密連接在一起,因為它經常和解碼器層交互。
4.格式轉換復用器(可選組件)
每個平臺在封包和編碼方面都有它的局限性(Flash讀的是 FLV 容器封裝的 H.264/AAC 文件,MSE 讀的是 ISOBMFF 容器封裝的 H.264/AAC 文件)。這就導致了有些視頻片段在解碼之前需要進行格式轉換。例如,有了 MPEG2-TS 到 ISOBMFF 的格式轉換復用器之后,hls.js 就能使用 MSE 格式的內容來播放 HLS 視頻流。多媒體引擎層面的格式轉換復用器曾經遭受質疑;然而,隨著現代 JavaScript 或者 Flash 解釋權性能的提升,它帶來的性能損耗幾乎可以忽略不計,對用戶體驗也不會造成多大的影響。
對于手機直播APP開發是一項龐大的工程,如果您想做一款屬于自己的手機直播APP,那么小編推薦您咨詢一下云豹網絡科技有限公司。他們經過市場全面調研,對于手機直播APP開發有著獨特的見解,您肯定不會失望。