99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

播放器的四個(gè)主要優(yōu)化部分

牽手一起夢(mèng) ? 來源:LiveVideoStack ? 作者:佚名 ? 2020-06-03 15:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

視頻體驗(yàn)由開始的視頻清晰流暢,演變到現(xiàn)在的視頻快速響應(yīng)、即點(diǎn)即放、快速切換等等。基于這些優(yōu)化林勇平將介紹播放器的一些技巧,使得視頻體驗(yàn)在較少改動(dòng)的情況下就能達(dá)到極致體驗(yàn)的效果。

本文主要分為四個(gè)部分:一是服務(wù)端優(yōu)化;二是播放器優(yōu)化;三是播放策略優(yōu)化;四是緩存優(yōu)化。將這幾部分組合起來就可以保視頻秒開、無縫滑動(dòng)等等優(yōu)化,保證在整體上進(jìn)行較少改動(dòng)的情況下達(dá)到一個(gè)較好的效果。

1. 服務(wù)端優(yōu)化

播放器的四個(gè)主要優(yōu)化部分

第一部分提到的是服務(wù)端優(yōu)化,主要分為三個(gè)部分,首先是服務(wù)數(shù)據(jù)優(yōu)化,即服務(wù)端數(shù)據(jù)的基礎(chǔ)準(zhǔn)備。在格式選擇方面,有MP4、FMP4、DASH、HLS和自定義格式,對(duì)于短視頻類的視頻格式大部分是MP4,對(duì)于長視頻類的格式可能有HLS、DASH、自定義格式。因?yàn)殚L文件的頭是比較大的,所以一般用上面說的描述文件,或者是分段MP4及FMP4文件,使MOOV頭信息變小,可以保證視頻即點(diǎn)即開。

現(xiàn)有的大部分短視頻使用的是MP4格式,選擇MP4格式主要是文件信息頭MOOV的信息應(yīng)該是前移的而不是在文件末尾,所以需要整個(gè)服務(wù)端進(jìn)行一遍轉(zhuǎn)碼。對(duì)于數(shù)目chunk而言,一個(gè)chunk可能包含幾幀,如果設(shè)置不對(duì),對(duì)于某些播放器就需要下載一個(gè)chunk才可以播放,這就需要下載很多的數(shù)據(jù),從而影響第一段的播放或者前面的播放。很多音頻特別容易出現(xiàn)這種情況,有些播放器中所有的幀都在一個(gè)chunk里面,這就需要下載這個(gè)chunk才能播放,就增加了等待的時(shí)間。

編碼器的選擇上,現(xiàn)在的編碼器一般都是H.264或者H.265,這需要根據(jù)各家公司的選擇。H.264主要是比較通用,H.265則是碼率比較好。在數(shù)據(jù)和信息的預(yù)取方面,如果一個(gè)頁面有很多視頻的時(shí)候,當(dāng)點(diǎn)擊一個(gè)視頻時(shí),該視頻里面的table等信息是可以預(yù)取的,方便后面點(diǎn)開播放進(jìn)行前期準(zhǔn)備。

第二是cdn的調(diào)度優(yōu)化,在視頻播放之前,首先要對(duì)dns進(jìn)行解析,通過服務(wù)器調(diào)度把最近的或者熱流地方的IP進(jìn)行解析。網(wǎng)絡(luò)切換,就是假如在4G、WiFi之間進(jìn)行切換的時(shí)候,先對(duì)IP的解析進(jìn)行預(yù)取,網(wǎng)絡(luò)切換情況如果是WiFi到4G,需要有一些提示;從4G到WiFi則不需要提示,而是需要及時(shí)地將這批IP切下去,因?yàn)椴煌?wù)商的cdn可能不一樣。

第三是P2P的點(diǎn)播,這主要是為了節(jié)省cdn費(fèi)用,一般可以節(jié)省25%以上的費(fèi)用,對(duì)于視頻和音頻公司來說,這些寬帶費(fèi)用是很高的。

播放器的四個(gè)主要優(yōu)化部分

這張圖展示的是信息的預(yù)取,就是獲取table里視頻頁中可以獲取的數(shù)據(jù),以保證視頻秒開,即點(diǎn)即放,即預(yù)取一定的數(shù)據(jù),點(diǎn)開就播放。48k相當(dāng)于大概不到一秒的數(shù)據(jù),先下載后點(diǎn)開,就直接播放了。

2. 播放器優(yōu)化

播放器的四個(gè)主要優(yōu)化部分

第二部分是播放器優(yōu)化,首先是點(diǎn)播優(yōu)化,它主要是各個(gè)模塊的一些優(yōu)化。其次是直播優(yōu)化,它不僅包含各個(gè)模塊優(yōu)化,還要有一個(gè)播放速率的控制,以保證較低延遲。

播放器的四個(gè)主要優(yōu)化部分

直播播放的大體框架就是由下載管理、文件解析、緩存管理、視頻解碼、視頻渲染、音頻解碼、音頻處理、音頻渲染這幾部分組成。對(duì)于直播來說多了“緩存管理”這一模塊,當(dāng)緩存管理大到一定程度,需要進(jìn)行變速或者丟幀。一般的情況下,如果緩存管理大于兩秒,就可以把這個(gè)兩秒的數(shù)據(jù)一直丟到I幀,以保證其低延遲。如果緩存管理大過一秒,這時(shí)就可以控制播放速率,可以播快一定的速度使其追上來,以保證低延遲??傊?,緩存管理就是檢查現(xiàn)有的播放器里的緩存的大小,以判斷延遲的的大小是否正常,若不正常是否需要丟幀或者加速。

2.1 文件解析優(yōu)化

播放器的四個(gè)主要優(yōu)化部分

對(duì)于文件解析優(yōu)化這部分,首先是緩存管理,有的播放器是解析一幀數(shù)據(jù)就丟一幀數(shù)據(jù),這時(shí)若推到后臺(tái)再推到前臺(tái)時(shí),對(duì)于已經(jīng)丟棄的數(shù)據(jù),當(dāng)前幀需要返回重新下載,而緩存管理不將過去的數(shù)據(jù)全部丟棄,至少保留某一個(gè)I幀。

其次是時(shí)間對(duì)齊,MP4 文件有時(shí)候音頻時(shí)間從0開始,但是視頻可能是從100ms開始,這時(shí)開始播放視頻,假如第一幀視頻出現(xiàn),但音頻就要從0開始播放到100再播放到33才有第二幀,這時(shí)大概有133毫秒的停頓,對(duì)于視頻來說相當(dāng)于播第一下的時(shí)候就會(huì)卡頓一下,所以時(shí)間對(duì)齊就是MP4在一定時(shí)間,即音頻大概多于多少的時(shí)候,可以把它丟掉,保證一開始播放時(shí)視頻和音頻同時(shí)起步,就不會(huì)引起第一幀卡頓的感覺。

三是后臺(tái)播放,它在直播場(chǎng)景中比較常見的,后臺(tái)播放時(shí)無需解碼,但需要AV同步,可以用原始幀時(shí)間同步,但也要保留至前一個(gè)I幀,然后再用解碼幀進(jìn)行AV同步。對(duì)于點(diǎn)播,推到后臺(tái)時(shí)一般是暫停的,但是對(duì)于后臺(tái)有些時(shí)候不能用硬解碼,回到前臺(tái)的時(shí)候,可以直接用seek(getPosition)。

四是斷點(diǎn)重連,是直播中常見的一個(gè)。點(diǎn)播中斷點(diǎn)重連影響不大,直播中斷點(diǎn)重連就是在直播中發(fā)生連接中斷了,重連時(shí)的時(shí)間戳從0開始下載,新下載的數(shù)據(jù)需要加一個(gè)tag,說明時(shí)間已經(jīng)發(fā)生變化,表示這一幀不用保證AV同步,對(duì)用戶來說是感覺不到是否發(fā)生中斷的。

播放器的四個(gè)主要優(yōu)化部分

圖中是一個(gè)MP4文件,圖中的左邊介紹了box類型,右邊是對(duì)其的說明。文件里的chunk offset表示每個(gè)chunk的文件偏移,一般短視頻的moov較小,對(duì)于MP4來說,其前面的頭信息還是較多的,其中ctts是為了I、B、P幀設(shè)置的。

播放器的四個(gè)主要優(yōu)化部分

圖中是一個(gè)FLV文件,圖中上部是FLV Header,下部是FLV Body。

2.2 解碼器優(yōu)化

播放器的四個(gè)主要優(yōu)化部分

關(guān)于解碼器優(yōu)化,首先硬件解碼主要有MediaCodec、AudioToolbox、后臺(tái)播放。其次軟件解碼優(yōu)化中的多線程優(yōu)化主要有兩種:Frame Module、Slice Module??焖俚谝粠堑谝粠M(jìn)去之后不會(huì)立馬出來,這時(shí)候就需要不斷塞數(shù)據(jù)讓第一幀快速出來,因?yàn)橐曨l解碼有參考幀概念。

2.3 渲染優(yōu)化

播放器的四個(gè)主要優(yōu)化部分

渲染優(yōu)化主要體現(xiàn)在一些選擇方式上,對(duì)于安卓來說有native windows、Opengles、MediaCodec三種;而IOS可以選擇Opengles,但要考慮前臺(tái)、后臺(tái)播放問題。其中native windows和Opengles相比,Opengles的限制比較多,而native windows沒有現(xiàn)成的限制。

3. 播放策略優(yōu)化

第三部分是播放策略優(yōu)化,對(duì)于直播來說,首先是cdn調(diào)度預(yù)取,當(dāng)前頁面直播列表要調(diào)度所有直播鏈接,獲取直播地址,直接用當(dāng)前的cdn的IP進(jìn)行播放。其次翻頁播放選擇多播放器進(jìn)行翻頁播放,當(dāng)前頁播放時(shí)翻到下一頁,點(diǎn)擊時(shí)下一個(gè)播放器已經(jīng)啟動(dòng)播放,相當(dāng)于兩個(gè)播放器同時(shí)播放,上滑播放上一個(gè)播放器,下滑播放下一個(gè)播放器,只不過下一個(gè)播放器的音量在非當(dāng)前頁面時(shí)為0,當(dāng)點(diǎn)擊結(jié)束時(shí),下一播放器在當(dāng)前頁面時(shí)的音量從0變?yōu)?。

對(duì)于點(diǎn)播來說,首先頁面預(yù)取加速就是點(diǎn)播在當(dāng)前頁面會(huì)有一個(gè)數(shù)據(jù)的預(yù)取,大概500毫秒數(shù)據(jù)時(shí)就可以點(diǎn)擊播放,一般需要獲取多少數(shù)據(jù)由服務(wù)器決定。其次翻頁多播放器,不同于直播時(shí)的兩個(gè)播放器同時(shí)進(jìn)行播放,點(diǎn)播翻頁播放在播放當(dāng)前頁面的時(shí)候,可以把上一個(gè)和下一個(gè)直接準(zhǔn)備好,上滑時(shí)準(zhǔn)備好上一個(gè)播放器,下滑時(shí)準(zhǔn)備好下一個(gè)播放器,翻頁時(shí)直接就準(zhǔn)備播放。

對(duì)于消息返回和打點(diǎn),首先如果碰到異常情況,播放器不能處理的時(shí)候,將消息拋到客戶端,由客戶端反饋給用戶一些提示,如網(wǎng)絡(luò)或者文件錯(cuò)誤等情況。其次打點(diǎn)對(duì)于cdn的連接時(shí)間、http的請(qǐng)求時(shí)間,下載第一幀數(shù)據(jù)、第一幀解碼和展示所有花費(fèi)的時(shí)間都由服務(wù)器打點(diǎn),由服務(wù)器統(tǒng)計(jì)決定哪些地方還需要再優(yōu)化,或者哪個(gè)cdn需要再進(jìn)一步優(yōu)化。直播一般十秒打一個(gè)十秒的信息,對(duì)當(dāng)前播放的音頻碼率、視頻碼率、原始碼率是否有丟幀、卡頓等信息都會(huì)進(jìn)行打點(diǎn),這對(duì)服務(wù)器進(jìn)行后續(xù)檢查直播或者點(diǎn)播中各種問題和進(jìn)行各種優(yōu)化都很有幫助。所以直播和點(diǎn)播打點(diǎn),就是對(duì)各個(gè)方面和各個(gè)數(shù)據(jù)進(jìn)行打點(diǎn),以便后續(xù)的找出合理的方式進(jìn)行優(yōu)化。

4. 緩存優(yōu)化

第四部分是緩存優(yōu)化,緩存優(yōu)化優(yōu)點(diǎn)很明顯,首先是節(jié)省cdn經(jīng)費(fèi),即邊播放邊緩存文件,推到前臺(tái)或者往回seek的時(shí)候,邊播邊存的優(yōu)勢(shì)就會(huì)顯示出來。其次是分塊存取,即播放當(dāng)前頁時(shí)需要快速拖動(dòng),需要保存所拖動(dòng)地方的文件,保證緩存空間和下載的數(shù)據(jù)是對(duì)應(yīng)的,以保證回放時(shí)節(jié)省流量。
責(zé)任編輯:pj

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

    關(guān)注

    6

    文章

    1972

    瀏覽量

    73915
  • 服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    75

    瀏覽量

    18715
  • 優(yōu)化
    +關(guān)注

    關(guān)注

    0

    文章

    220

    瀏覽量

    24337
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Made with KiCad(135):Echo - 開源的音樂播放器

    “? Echo 是一個(gè)開源硬件平臺(tái),專為音樂播放器設(shè)計(jì)。該項(xiàng)目的目標(biāo)是開發(fā)一款基于開源軟件并采用開源設(shè)計(jì)的高品質(zhì)音樂播放器。 ” ? Made with KiCad 系列將支持新的展示方式。直接將以
    的頭像 發(fā)表于 07-16 11:17 ?148次閱讀
    Made with KiCad(135):Echo - 開源的音樂<b class='flag-5'>播放器</b>

    基于STM32的音樂播放器電路+PCB源文件+源碼+論文等打包下載

    基于STM32的音樂播放器電路+PCB源文件+源碼+論文等打包,推薦下載!
    發(fā)表于 05-29 21:37

    PLC產(chǎn)品故障問題測(cè)試的四個(gè)部分

    ,必須對(duì)故障問題進(jìn)行系統(tǒng)化測(cè)試。本文將詳細(xì)介紹PLC產(chǎn)品故障問題測(cè)試的四個(gè)關(guān)鍵部分,幫助技術(shù)人員快速定位和解決問題。 一、硬件測(cè)試 硬件測(cè)試是PLC故障診斷的首要環(huán)節(jié),主要針對(duì)PLC設(shè)備的物理部件進(jìn)行檢查。首先,需要檢查電源模塊
    的頭像 發(fā)表于 05-11 17:00 ?339次閱讀
    PLC產(chǎn)品故障問題測(cè)試的<b class='flag-5'>四個(gè)</b><b class='flag-5'>部分</b>

    【開源分享】用ESP32復(fù)刻一個(gè)iPod :便攜式音樂播放器Tangara

    Tangara是一款便攜式開源音樂播放器,硬件電路使用KiCad設(shè)計(jì),而且它的外殼和固件也是100%開源,點(diǎn)擊閱讀原文或下載鏈接可跳轉(zhuǎn)下載。它通過3.5毫米耳機(jī)插孔或藍(lán)牙輸出高品質(zhì)聲音,電池續(xù)航
    的頭像 發(fā)表于 04-22 08:05 ?606次閱讀
    【開源分享】用ESP32復(fù)刻一<b class='flag-5'>個(gè)</b>iPod :便攜式音樂<b class='flag-5'>播放器</b>Tangara

    Made with KiCad:Tangara 便攜式音樂播放器

    的設(shè)計(jì)哲學(xué) 眾多現(xiàn)有便攜式媒體播放器已培育出活躍的社群生態(tài),致力于固件維護(hù)、軟件優(yōu)化及設(shè)備翻新升級(jí)。Tangara 的設(shè)計(jì)理念深度契合此類社群精神:我們期望您購買的不僅是一臺(tái)設(shè)備,更是一個(gè)能伴隨數(shù)十年
    發(fā)表于 04-16 14:01

    模數(shù)轉(zhuǎn)換電路的四個(gè)過程

    模數(shù)轉(zhuǎn)換(Analog-to-Digital Conversion,簡稱ADC)是將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)的關(guān)鍵過程,廣泛應(yīng)用于通信、數(shù)據(jù)采集、信號(hào)處理等領(lǐng)域。模數(shù)轉(zhuǎn)換電路的設(shè)計(jì)與實(shí)現(xiàn)涉及多個(gè)關(guān)鍵步驟,通??梢苑譃?b class='flag-5'>四個(gè)主要過程:采樣、保持、量化和編碼。本文將詳細(xì)分析這
    的頭像 發(fā)表于 02-03 16:12 ?1484次閱讀

    海貝HiBy R1播放器體驗(yàn)

    之前分享過用接入便攜耳放來提升音質(zhì),讓手機(jī)端也能享受HiFi級(jí)的聽感體驗(yàn)。這個(gè)方案對(duì)于沒有數(shù)碼播放器的初燒用戶來說,確實(shí)是種非常高效的方法。 但缺點(diǎn)也是有的,比如歌曲存放需要占用手機(jī)存儲(chǔ)空間,手機(jī)
    的頭像 發(fā)表于 01-24 11:27 ?1591次閱讀
    海貝HiBy R1<b class='flag-5'>播放器</b>體驗(yàn)

    畢業(yè)設(shè)計(jì)競賽選題推薦 | 嵌入式Linux應(yīng)用之音樂播放器項(xiàng)目實(shí)戰(zhàn)(含文檔及源碼)

    01引言隨著數(shù)字化娛樂日益普及,音樂播放器作為人們生活中不可或缺的一部分,扮演著重要的角色。無論是通勤途中、健身鍛煉還是工作學(xué)習(xí),一個(gè)好用的音樂播放器都能為用戶提供愉悅的音頻體驗(yàn),豐富
    的頭像 發(fā)表于 12-23 16:50 ?920次閱讀
    畢業(yè)設(shè)計(jì)競賽選題推薦 | 嵌入式Linux應(yīng)用之音樂<b class='flag-5'>播放器</b>項(xiàng)目實(shí)戰(zhàn)(含文檔及源碼)

    海貝R1便攜音樂播放器開箱

    作為一個(gè)愛聽音樂打發(fā)時(shí)間的玩家,我已經(jīng)習(xí)慣隨身攜帶一款小巧輕便的音樂播放器,從早期的CD播放器到現(xiàn)在的數(shù)碼播放器,它總能在不經(jīng)意間中給我?guī)砗唵蔚目鞓?。不管是逛街等人的時(shí)候,還是工作壓
    的頭像 發(fā)表于 12-09 09:40 ?928次閱讀
    海貝R1便攜音樂<b class='flag-5'>播放器</b>開箱

    變速播放器1和2的區(qū)別

    關(guān)于變速播放器1和2的區(qū)別,由于這里并未明確指出“變速播放器1”和“變速播放器2”具體指的是哪兩款軟件,因此我無法提供這兩款特定軟件之間的對(duì)比。不過,我可以從一般意義上探討變速播放器
    的頭像 發(fā)表于 10-14 09:48 ?667次閱讀

    步步高AB915D DVD播放器維修圖紙

    步步高AB915D DVD播放器采用ZIVA-4.1芯片方案
    發(fā)表于 09-29 10:18 ?1次下載

    為什么好的播放器還要配解碼

    好的播放器之所以需要配備解碼,是因?yàn)橐纛l和視頻文件的編碼和解碼是一個(gè)復(fù)雜的過程,涉及到多種技術(shù)和標(biāo)準(zhǔn)。解碼的作用是將壓縮的音頻和視頻數(shù)據(jù)還原成可以被
    的頭像 發(fā)表于 09-23 18:02 ?3205次閱讀

    數(shù)字播放器和解碼

    數(shù)字播放器和解碼的組合能夠提供更優(yōu)質(zhì)的音頻體驗(yàn)。數(shù)字播放器負(fù)責(zé)處理和傳輸音頻數(shù)據(jù),而解碼則負(fù)責(zé)將這些數(shù)據(jù)轉(zhuǎn)換為高質(zhì)量的模擬信號(hào)。它們的配合可以確保你聽到的音頻既清晰又真實(shí)。
    的頭像 發(fā)表于 09-06 17:35 ?2189次閱讀
    數(shù)字<b class='flag-5'>播放器</b>和解碼<b class='flag-5'>器</b>

    mpo光纜的四個(gè)組成部分

    MPO光纜(Multi-fiber Push On光纜)作為一種高密度的多芯光纖連接解決方案,其組成部分主要包括以下幾個(gè)方面: 1. MPO連接 核心部件:MPO連接是MPO光纜的
    的頭像 發(fā)表于 09-04 09:58 ?1148次閱讀

    IGBT的四個(gè)主要參數(shù)

    IGBT的四個(gè)主要參數(shù)對(duì)于選擇合適的IGBT器件至關(guān)重要。本文將介紹IGBT的四個(gè)主要參數(shù):電壓等級(jí)、電流等級(jí)、開關(guān)頻率和熱性能。 1. 電壓等級(jí) 電壓等級(jí)是IGBT的一
    的頭像 發(fā)表于 07-25 11:05 ?7628次閱讀