曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

MX Player在線播放優(yōu)化

LiveVideoStack ? 來源:LiveVideoStack ? 2023-07-10 14:41 ? 次閱讀

所有在線內(nèi)容播放,都面臨一些共同的問題:啟播慢,seek慢,碼率切換慢。而隨著互聯(lián)網(wǎng)的發(fā)展,用戶對這些方面的要求越來越高,對慢的容忍度越來越差,如何解決這些問題,就成了MXPlayer 在線業(yè)務初期優(yōu)化的重點。

本次分享將分為四個部分:第一部分介紹MXPlayer 如何解決起播慢,seek慢;第二部分介紹如何解決碼率切換慢的問題;第三部分介紹緩存面臨的問題,以及緩存是如何為前兩部分服務的;最后一個部分介紹在復雜業(yè)務下,多播放器實例是如何管理的,通過以上幾個部分為大家介紹MXPlayer 對在線內(nèi)容播放優(yōu)化的經(jīng)驗。

大家好,我是趙琳琳,來自MX Player。我的分享主題是:MX Player在線播放優(yōu)化。

9d158a72-1ec9-11ee-962d-dac502259ad0.png

首先簡單介紹一下業(yè)務背景:MX Player起初是一款比較純粹的本地播放器,其體積小,但功能強大,在全球各個地區(qū)都有不少的活躍用戶。隨著時間推移,公司在產(chǎn)品策略上也進行升級,引入了在線化的內(nèi)容如影視劇、短視頻、直播等。

雖然全球都有MX Player的用戶,但其中主要用戶來自于印度地區(qū)。印度地區(qū)的用戶比較有特色,第一是語言(有十幾種主流語言);第二是網(wǎng)絡(4G網(wǎng)絡占多數(shù),家庭有線寬帶較少);第三是設備(偏低端機型,存儲空間?。?/p>

9d6489a6-1ec9-11ee-962d-dac502259ad0.png

隨著在線內(nèi)容的引入,也出現(xiàn)了一些問題。例如啟播慢、seek慢、碼率切換慢、緩存命中率低、代碼復雜度高等。

9d8c7a9c-1ec9-11ee-962d-dac502259ad0.png

今天的分享內(nèi)容主要圍繞以上的問題展開,首先介紹秒開、快速seek是如何實現(xiàn)的;之后是平滑碼率切換的技術(shù)細節(jié);然后是緩存面臨的挑戰(zhàn);最后是多播放器事例是如何管理的。

-01-

秒開

9dc2bc74-1ec9-11ee-962d-dac502259ad0.png

第一部分,秒開。如何讓用戶盡可能快地看到視頻內(nèi)容,是所有在線播放面臨的難題。有數(shù)據(jù)表明,等待時間越長,用戶流失越嚴重。

9deb4cac-1ec9-11ee-962d-dac502259ad0.png

根據(jù)統(tǒng)計,熱度視頻平均啟播時長在2.5秒左右。

9e3a3f1a-1ec9-11ee-962d-dac502259ad0.png

經(jīng)過進一步的分析,發(fā)現(xiàn)其中絕大多數(shù)時間用于下載數(shù)據(jù)。

9e890b68-1ec9-11ee-962d-dac502259ad0.png

那么如何減少用戶的等待時間呢?我們分析了幾個優(yōu)化方向,首先解碼占用時間是較少的,優(yōu)化空間有限;啟播緩沖區(qū)大概需要2秒等待時間,我們認為這個時間已經(jīng)很短了,所以不選擇減小以優(yōu)化;最終我們經(jīng)過分析對比選擇了預加載方案。

9eb2b3b4-1ec9-11ee-962d-dac502259ad0.png

預加載的流程是:首先服務端根據(jù)一些策略判定哪些視頻需要預加載,并且把信息告訴客戶端。客戶端收到請求后,會啟動預加載程序。預加載程序會在視頻沒有播放的情況下啟動預加載,把需要加載的視頻頭2秒放到緩存內(nèi)。

9eeffdd2-1ec9-11ee-962d-dac502259ad0.png

策略上線后,熱度視頻的平均啟播時長由2.5秒降到1.8秒。如果預加載的緩存命中,啟播時長可以達到0.5秒,收益非??捎^。

9f33e718-1ec9-11ee-962d-dac502259ad0.png

那么如何決策哪些視頻需要預加載?服務端會根據(jù)視頻的標簽(新劇/推廣/熱度)等進行打分,最終做出決策并告知客戶端,啟動預加載程序。

-02-

快速seek

9f8a8668-1ec9-11ee-962d-dac502259ad0.png

接下來介紹快速seek。和啟播一樣,等待時間越長,用戶流失越嚴重。

9fbe0f9c-1ec9-11ee-962d-dac502259ad0.png

我們先看一下優(yōu)化之前的seek過程。假設用戶要seek到A點,播放器首先會進入暫停狀態(tài),并緩沖接下來6秒的數(shù)據(jù),完成之后開始播放。

9ff60b68-1ec9-11ee-962d-dac502259ad0.png

經(jīng)過分析,發(fā)現(xiàn)用戶seek平均等待時間是3.4秒

a02252fe-1ec9-11ee-962d-dac502259ad0.png

那如何減少seek時間呢?

前文有提到預加載方案,是否適用于seek呢?答案是No,因為并不知道用戶要seek到什么位置,除非緩存整個視頻,顯然這是不合適的。

另外一個方案是減小緩沖區(qū),例如從6秒調(diào)整到4秒或更短。但這種方法比較簡單粗暴,無法預知其是否有負面的用戶體驗影響,所以這個方案也被否定。

a05bdeca-1ec9-11ee-962d-dac502259ad0.png

那么如何解決呢?經(jīng)過分析和觀察,我們發(fā)現(xiàn)當播放器當前的下載速度大于播放速度,不論緩沖區(qū)有多少數(shù)據(jù),播放都是流暢的。

a087a1e0-1ec9-11ee-962d-dac502259ad0.png

根據(jù)以上結(jié)論,我們得出一個快速seek方案:用戶seek到A點,播放器暫停并緩沖1秒,得出當前下載速度D和常量播放速度P,如果D》=P,則直接開始播放;如果D《P,就會執(zhí)行緩沖6秒數(shù)據(jù)再開始播放。

a0d702da-1ec9-11ee-962d-dac502259ad0.png

策略上線后,數(shù)據(jù)統(tǒng)計分析顯示平均等待時長由原先的3.4秒降為2.5秒。

-03-

平滑碼率切換

a10c1268-1ec9-11ee-962d-dac502259ad0.png

接下來講平滑碼率切換,首先看一下優(yōu)化前的流程。

箭頭所指為當前播放器進度,藍色為已緩沖內(nèi)容。如果開始切換,播放器會暫停,并丟棄當前的緩沖區(qū),接著緩沖對應碼率的6秒數(shù)據(jù),再開始播放。

a153775c-1ec9-11ee-962d-dac502259ad0.png

經(jīng)過數(shù)據(jù)統(tǒng)計,碼率切換平均等待時間為2.8秒。

a18efc64-1ec9-11ee-962d-dac502259ad0.png

如何減小切換等待時間呢?同樣的,減小緩沖區(qū)的方案比較簡單粗暴,直接pass。

可以注意到,圖中紅色的丟棄緩沖區(qū),原本是可以正常播放的,只是因為用戶需要切換碼率,所以丟棄。那么是否可以重用該緩沖區(qū)呢?答案是肯定的。

a1c49482-1ec9-11ee-962d-dac502259ad0.png

如圖是優(yōu)化后的平滑碼率切換方案:當播放器進行碼率切換時,并不會進入暫停,而是繼續(xù)播放當前碼率上已經(jīng)緩沖好的數(shù)據(jù),并開辟一個新的緩沖區(qū)來緩沖對應碼流的6秒數(shù)據(jù),同時當舊緩沖區(qū)數(shù)據(jù)播放完,進行緩沖區(qū)切換。

a1ea9bfa-1ec9-11ee-962d-dac502259ad0.png

業(yè)務上線后經(jīng)數(shù)據(jù)統(tǒng)計,優(yōu)化后的碼率切換平均等待時間由原來的2.8秒降為0.4秒。

-04-

緩存面臨的挑戰(zhàn)

a23c3686-1ec9-11ee-962d-dac502259ad0.png

接下來介紹緩存面臨的挑戰(zhàn)以及對應的解決方法。

前述提到MX Player在線用戶主要分布在印度,他們的設備偏低端,內(nèi)存空間普遍都非常小。在業(yè)務上線之初,我們給緩存空間定了一個上限為2G。上線后,后臺收到了大量的用戶反饋,說App占用空間過大。經(jīng)過我們的討論和決策,把緩存下調(diào)到500M,這帶來了一個直接的問題:命中率降低。

a2623f84-1ec9-11ee-962d-dac502259ad0.png

如圖是優(yōu)化前的緩存布局,在容量不變的情況下,分片越小,個數(shù)越多,命中率就會越高。

a2a1c7da-1ec9-11ee-962d-dac502259ad0.png

基于上述結(jié)論,我們得出一個方案:兩段緩存。

我們把一個完整的分片拆為頭尾兩部分,頭部優(yōu)先級高,尾部優(yōu)先級低,并放入緩存空間。當空間滿了之后,會先清理掉所有尾部數(shù)據(jù)。

a2c929f6-1ec9-11ee-962d-dac502259ad0.png

這是優(yōu)化后的緩存布局。左圖為裝滿6個分為頭尾的分片數(shù)據(jù),當用戶繼續(xù)使用一段時間后,緩存空間布局就會變成右圖的樣子,只留下了各個分片的頭部數(shù)據(jù)。

這時如果播放器需要播放內(nèi)容,到緩沖區(qū)查找數(shù)據(jù),就會發(fā)現(xiàn)右圖的命中率一定是比左圖布局要高的。

這時回顧一下預加載和快速seek:預加載方案是緩存視頻頭2秒,和兩段緩存中的頭部分片數(shù)據(jù)是吻合的。在快速seek中,如果在1秒緩沖內(nèi)可以命中緩存的頭部數(shù)據(jù),并且下載速度大于播放速度,就可以直接啟播。

兩段緩存方案在后臺默默地為其他功能進行支持,這些方案是相輔相成的關系。

-05-

多播放器如何管理

a30713ec-1ec9-11ee-962d-dac502259ad0.png

接下來介紹多播放器如何管理。

隨著業(yè)務發(fā)展,播放場景也越來越多。這些播放場景之間并不是彼此孤立的,如PIP播放和音樂播放就是互斥關系。當PIP正在播放,用戶需要切換音樂播放,就需要暫停PIP,反之亦然。

另外,feed流播放需要和PIP播放以及音樂播放共存。因為feed流播放是無聲和自動播放,我們并不希望這種播放打擾用戶行為。

a32b2430-1ec9-11ee-962d-dac502259ad0.png

隨著在線業(yè)務高速發(fā)展,隨之而來的是一系列問題。

a36a06f0-1ec9-11ee-962d-dac502259ad0.png

經(jīng)過討論決定,我們選擇重構(gòu)部分代碼以解決問題,同時定下幾條重構(gòu)原則:

第一,業(yè)務代碼彼此獨立:業(yè)務之間無需互相知道;增加新業(yè)務無需修改其他業(yè)務;啟動播放無需判斷是否有其他播放。

第二,環(huán)境變化自我感知:當App失去聲音焦點,自動暫停;程序進入后臺,播放器按需暫停;進入音樂播放后,自動暫停PIP。

a39ddc28-1ec9-11ee-962d-dac502259ad0.png

基于以上原則,我們重構(gòu)了代碼,結(jié)構(gòu)如圖所示。Player代表底層播放器,并抽象出來PlayerContext的概念。每一個Player必須和Context進行attach,才能播放。Context有一個屬性為ready,只有在ready情況下,才能夠讓播放器啟動,否則會暫停。

Context有幾個具體的實例,首先是Activity,它是一個安卓標準組件,只有在unReceived的時候才是ready狀態(tài);Fragment和Activity類似,只有unReceived才是ready狀態(tài);Screen在鎖屏時為非ready狀態(tài),其他時候都為ready;Global永遠都是ready狀態(tài)。

Activity和Fragment主要用于詳情頁播放和feed流播放;Screen用于PIP播放;Global用于后臺播放。

Player和PlayerContext之間不直接交互,而是通過PlayerManager進行管理。它會監(jiān)聽和維護所有PlayerContext的狀態(tài),并根據(jù)其狀態(tài)改變來控制播放器的生命周期變化。同時,Manager會維護Player和Context之間的映射關系。

經(jīng)過這樣的結(jié)構(gòu)重構(gòu),我們的業(yè)務代碼基本實現(xiàn)了解耦,新增業(yè)務不需要改動已有業(yè)務,并且樣本代碼不需要出現(xiàn)在具體業(yè)務中,PlayerManager可以感知并通知Player進行操作。 以上就是我的全部分享,謝謝大家!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 播放器
    +關注

    關注

    5

    文章

    411

    瀏覽量

    37875
  • 視頻
    +關注

    關注

    6

    文章

    1967

    瀏覽量

    73618
  • 互聯(lián)網(wǎng)

    關注

    54

    文章

    11219

    瀏覽量

    105278

原文標題:MX Player在線播放優(yōu)化

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    請問如何在線播放某一特定時刻的音頻?

    請各位大佬指教. 在做一個在線播放音頻的設備,能記錄播放的時間,想從上一次停止的時間再播放。比如從音頻的1分鐘以后開始播放。 之前用linux做的demo,現(xiàn)在想換成ESP32,但在A
    發(fā)表于 06-28 14:28

    上網(wǎng)本伴侶—PPS高清網(wǎng)絡在線播放器誠征全國代理

    寬景科技(KJ)現(xiàn)推出全球首款真正的高清網(wǎng)絡在線播放器,只需一根網(wǎng)線,就可讓你在玩上網(wǎng)本的同時,家人可以享受到在電視上看海量網(wǎng)絡高清電影,不需要下載。1。近十萬部海量片源,即時更新,隨時
    發(fā)表于 09-24 16:14

    labview調(diào)用media player播放窗口大小如何更改?

    如題,請問我用labview調(diào)用windows media player播放視頻時播放窗口的大小如何鎖定,現(xiàn)在一點開始播放窗口就自動變得很大
    發(fā)表于 03-31 14:46

    SurfaceProvider+Player視頻播放開發(fā)過程分享

    的是SurfaceProvider+ Player 完成的播放 pause()暫停播放。getCurrentTime()獲取當前播放位置。getDuration()獲取媒體文件總時長
    發(fā)表于 03-08 09:29

    基于HarmonyOS Player,實現(xiàn)音頻的播放、管理控制和采集

    收集和系統(tǒng)音量控制的用法。本篇Codelab將實現(xiàn)的內(nèi)容您將構(gòu)建一個應用程序?qū)崿F(xiàn)以下內(nèi)容:基于HarmonyOS Player播放本地音頻資源或從Internet獲得的音頻資源。通過音頻采集器采集現(xiàn)場
    發(fā)表于 09-16 15:07

    基于HarmonyOS Player,實現(xiàn)視頻文件的播放

    和布局的編寫,再到編譯構(gòu)建、部署和運行全過程。您將構(gòu)建一個基于HarmonyOS Player類實現(xiàn)的應用程序,該應用程序功能為播放本地視頻資源或從Internet獲得的視頻資源。效果圖如下:您將
    發(fā)表于 09-18 13:51

    Harmony player組件如何自動循環(huán)播放音樂?

    );player.prepare();播放器.play();復制通過播放器組件播放應用的背景音樂,播放完畢后就停止了,如何在程序中自動設置無
    發(fā)表于 04-20 10:43

    請問鴻蒙player組件如何自動循環(huán)播放音樂?

    );player.prepare();播放器.play();通過播放器組件播放應用的背景音樂,播放完畢后就停止了,如何在程序中自動設置無限循
    發(fā)表于 05-11 10:23

    i.MX Windows 10 IoT 1.4.0上的視頻播放失敗的原因?怎么解決?

    大家好,我們正在嘗試將i.MX Windows 10 IoT 1.4.0 與 – 8MPLUSLPD4-EVK 一起使用 。我們看到了以下與視頻播放相關的評論和預期的改進。發(fā)行說明P2 上的那些評論
    發(fā)表于 04-07 09:04

    Windows Media Player音樂播放器代碼

    Windows Media Player音樂播放器代碼 一、Windows Media Player音樂播放器代碼:
    發(fā)表于 01-10 11:14 ?2312次閱讀

    《珠光寶氣》登陸土豆網(wǎng) 創(chuàng)在線播放佳績

    《珠光寶氣》登陸土豆網(wǎng) 創(chuàng)在線播放佳績       上海2009年10月12日電 -- 國慶期間,香港無線電視臺年度巨制
    發(fā)表于 10-15 08:44 ?1071次閱讀

    海信成功實現(xiàn)了5G信號下8K超高清視頻的在線播放

    海信工程師利用中國移動設在青島研發(fā)中心總部的5G信號基站,通過具有8K解碼和8K顯示功能的海信電視產(chǎn)品,在線下載并播放存儲在中國移動相關服務器上的8K視頻,成功實現(xiàn)了5G+8K視頻的在線播放。
    的頭像 發(fā)表于 08-04 10:04 ?6082次閱讀

    UOS系統(tǒng)與奇安信旗下安全瀏覽器完成產(chǎn)品認證 支持1080p視頻在線播放

    今天統(tǒng)信軟件宣布UOS系統(tǒng)與奇安信旗下的安全瀏覽器完成了產(chǎn)品認證,支持國家加密標準,也能勝任1080p視頻在線播放等復雜場景。
    的頭像 發(fā)表于 04-08 08:47 ?2928次閱讀

    新版Flash Player推送:Win7以下系統(tǒng)不再支持視頻格式內(nèi)容播放

    1月12日消息,重橙網(wǎng)絡官方微博宣布,今天新版Flash Player已經(jīng)更新,其中包括可用性、在線安全及穩(wěn)定性的改善,最新版本號為34.0.0.92。 根據(jù)重橙網(wǎng)絡此前發(fā)布的公告,由于技術(shù)支持原因
    的頭像 發(fā)表于 01-12 18:11 ?2997次閱讀

    亞馬遜擬收購印度流媒體MX Player部分資產(chǎn)

    近日,亞馬遜與印度知名視頻流媒體服務MX Player達成了一項引人注目的收購協(xié)議。據(jù)悉,亞馬遜將收購MX Player的部分資產(chǎn),而此次交易的估值不到1億美元,遠低于市場對該公司的預
    的頭像 發(fā)表于 06-07 15:56 ?687次閱讀