• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    CDN存量MP4視頻播放優(yōu)化方法

    2020-10-26 06:36:52黃潤懷陳戈
    廣東通信技術(shù) 2020年10期
    關(guān)鍵詞:分片播放器客戶端

    [黃潤懷 陳戈]

    1 現(xiàn)有MP4文件播放方法概述

    MP4文件格式是目前各大影音網(wǎng)站使用的主流格式,客戶端從服務(wù)器逐步獲取MP4文件并進(jìn)行播放。MP4文件有一個(gè)最重要的組成部分稱為MP4BOX,MP4BOX中不包含具體媒體數(shù)據(jù),但包含MP4文件中所有媒體數(shù)據(jù)的宏觀描述信息,記錄了創(chuàng)建時(shí)間、修改時(shí)間、時(shí)間度量標(biāo)尺、可播放時(shí)長等,以及文件中每個(gè)媒體軌道的具體信息。MP4文件需要通過配合MP4BOX中的信息才能夠進(jìn)行播放。

    在現(xiàn)有技術(shù)中,播放器要播放一個(gè)MP4格式的內(nèi)容,就首先需要下載MP4BOX,只有下載完MP4BOX后,才能獲得播放的必要信息,播放器播放啟動(dòng)等待時(shí)間長。為優(yōu)化MP4播放等待時(shí)長問題,業(yè)界在編碼時(shí),即對MP4BOX進(jìn)行優(yōu)化,如把MP4切成小分片,每個(gè)小分片有一個(gè)MP4BOX,或直接使用DASH等MP4分片新格式。

    對于CDN已經(jīng)存儲(chǔ)的海量MP4文件而言,對其進(jìn)行重編碼和重新注入是一件極為費(fèi)時(shí)費(fèi)力的工作。本文提出了一種CDN存量MP4視頻播放優(yōu)化方法,并在實(shí)際應(yīng)用取得了較好的效果。

    2 CDN虛擬分片方案

    為優(yōu)化CDN MP4存量內(nèi)容的播放速度,可在現(xiàn)有MP4文件的基本上為其增加相應(yīng)索引,如圖1所示。

    圖1 CDN對MP4文件虛擬分片的交互架構(gòu)

    CDN掃描存量的MP4文件,并成生一個(gè)外部索引文件頭,其中,MP4文件被虛擬切分為多個(gè)分片,索引文件頭包括各個(gè)分片的分片文件頭索引。播放器可根據(jù)分片文件頭索引獲取分片文件頭,并根據(jù)分片文件頭獲取并播放分片。

    分片文件頭索引為分片文件頭的地址索引或存儲(chǔ)分片文件頭地址的路徑索引。為支持拖動(dòng)、快進(jìn)等損傷,索引文件頭還包括各分片的時(shí)間范圍,播放器在響應(yīng)用戶的拖動(dòng)操作時(shí),根據(jù)分片文件頭索引確定拖動(dòng)位置所在的分片,并向CDN服務(wù)器發(fā)送獲取分片請求,獲取分片請求包含對應(yīng)分片和用戶拖動(dòng)位置信息的請求。

    MP4索引文件頭可以是Json格式的文件,索引文件頭中可以包含表1所示的關(guān)鍵字。

    表1 MP4索引文件頭信息

    根據(jù)索引文件頭中的URL信息可以得到分片文件頭的地址。分片文件頭可以與MP4文件分片分離存儲(chǔ),同一個(gè)MP4文件的分片文件頭可以存儲(chǔ)在一起。同一個(gè)MP4文件的分片文件頭以一個(gè)結(jié)構(gòu)體與所有的分片文件頭連續(xù)存儲(chǔ)而成,其中存儲(chǔ)在分片文件頭之前的結(jié)構(gòu)體的定義如下:

    在結(jié)構(gòu)體MP4ClipHeader中定義了分片的數(shù)目mdwClipCount,和與分片數(shù)目相等的MP4ClipInfo結(jié)構(gòu)體。每個(gè)MP4ClipInfo結(jié)構(gòu)體對應(yīng)一個(gè)分片的分片文件頭和分片內(nèi)容信息,其中,mdwHeaderStartPos為分片頭在頭文件中的起始位置,mdwHeaderLength為分片頭的長度,mllContentStartPos為分片內(nèi)容在原始文件中的起始位置,mdwContentLength為分片內(nèi)容的長度。

    索引文件頭中的分片文件頭索引中包含MP4ClipHeader結(jié)構(gòu)體的地址信息,由于每個(gè)MP4ClipInfo所占用空間相同,因此可以用MP4ClipInfo占用的空間×(分片序號(hào)-1)+4的計(jì)算式獲得對應(yīng)分片的MP4ClipInfo地址,從而獲得對應(yīng)分片文件頭的地址,確定分片文件的地址。

    3 業(yè)務(wù)流程與播放器升級(jí)

    為支持虛擬MP4分片,播放器也需要進(jìn)行升級(jí),升級(jí)后的播放器需支持MP4虛擬分片的外部索引,并根據(jù)索引信息進(jìn)行相應(yīng)的播放操作。播放器支持的分片文件頭索引內(nèi)容簡單,只需MP4ClipHeader結(jié)構(gòu)體的地址信息、每個(gè)MP4ClipInfo所占用空間和分片序號(hào)即能計(jì)算得到分片文件頭地址的存儲(chǔ)路徑。這種方式能夠有效縮小索引文件頭,簡短客戶端從服務(wù)器獲取索引文件頭的時(shí)間。

    播放器訪問虛擬分片的業(yè)務(wù)流程如圖2所示。

    圖2 升級(jí)后的播放器訪問虛擬分片的業(yè)務(wù)流程

    如圖2所示的業(yè)務(wù)流程,CDN可通過判斷客戶端的版本,為播放器提供不同的流服務(wù)。對于未升級(jí)不支持虛擬分片的播放器,CDN為其提供原有的流服務(wù),對于已升級(jí)的播放器,CDN為其提供如圖2所示的流服務(wù)。

    CDN服務(wù)器接收到播放器獲取分片請求消息之后的處理流程可以如圖3所示。

    如圖3所示的CDN處理流程中可以看出,虛擬分片的處理工作,大部分交由了CDN來進(jìn)行處理,播放器升級(jí)的地方很少。

    服務(wù)器接收到客戶端的獲取分片請求后,服務(wù)器判斷請求中是否含有查詢字符串,如果不含查詢字符串,判斷該請求不是MP4分片請求;否則服務(wù)器解析請求,獲取請求的分片序號(hào)。服務(wù)器計(jì)算請求的分片文件頭的地址信息的存放位置。服務(wù)器讀取分片文件頭存儲(chǔ)的地址信息。服務(wù)器根據(jù)分片文件頭的地址讀取分片文件頭的內(nèi)容。經(jīng)過以上的步驟,服務(wù)器根據(jù)收到的獲取分片請求讀取到了分片文件頭信息。

    圖3 CDN響應(yīng)客戶端的處理流程示意

    服務(wù)器判斷獲取分片請求中是否含有定位信息。定位信息是用戶拖動(dòng)分片,并且拖動(dòng)點(diǎn)不在分片的起始位置的標(biāo)識(shí),如果含有定位信息,則服務(wù)器讀取原分片文件頭和分片的信息,根據(jù)定位信息構(gòu)造新的分片文件頭。如果不含有定位信息,則服務(wù)器讀取分片文件頭對應(yīng)的分片。對于請求中有定位信息的情況,服務(wù)器讀取的是根據(jù)定位信息構(gòu)造的新的分片。

    服務(wù)器根據(jù)定位信息,計(jì)算新的分片的起始地址,構(gòu)造新的分片。在MP4文件的分片為邏輯分片,分片文件頭單獨(dú)存儲(chǔ)的情況下,新的分片的起始地址=原分片的起始地址+拖動(dòng)位置的媒體內(nèi)容在所處分片的相對地址;在MP4文件的分片與對應(yīng)的分片文件頭連續(xù)存儲(chǔ),且分片文件頭存儲(chǔ)在對應(yīng)分片之前的情況下,新的分片的起始地址=原分片的起始地址+拖動(dòng)位置的媒體內(nèi)容在所處分片的相對地址-原分片的分片文件頭長。

    4 應(yīng)用效果

    本文方案由于無需對CDN存量內(nèi)容進(jìn)行重編碼、重注入,同時(shí),播放器升級(jí)改造簡單,也兼容客戶端不升級(jí)方案,因此,在實(shí)際應(yīng)用中,大大提升了用戶MP4視頻的播放速度,取得了較好的應(yīng)用效果。

    猜你喜歡
    分片播放器客戶端
    上下分片與詞的時(shí)空佈局
    詞學(xué)(2022年1期)2022-10-27 08:06:12
    降低跨分片交易回滾概率的多輪驗(yàn)證方案
    分片光滑邊值問題的再生核方法
    Walkman誕生40周年 索尼適時(shí)發(fā)布NW-ZX500和NW-A100系列播放器
    基于STM32的MP3播放器設(shè)計(jì)
    電子制作(2019年9期)2019-05-30 09:41:44
    基于模糊二分查找的幀分片算法設(shè)計(jì)與實(shí)現(xiàn)
    Moon ACE播放器/放大器一體機(jī)
    縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
    孵化垂直頻道:新聞客戶端新策略
    基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
    電子測試(2018年10期)2018-06-26 05:53:34
    尼勒克县| 温宿县| 金沙县| 全南县| 遂川县| 钟山县| 卢氏县| 嘉禾县| 昌宁县| 林口县| 保靖县| 瑞安市| 舒城县| 将乐县| 兰溪市| 连云港市| 青州市| 福建省| 龙南县| 玉环县| 阳原县| 眉山市| 体育| 沐川县| 工布江达县| 望江县| 宣武区| 宣化县| 汤阴县| 长春市| 达拉特旗| 礼泉县| 南郑县| 腾冲县| 甘洛县| 来宾市| 高密市| 米易县| 商城县| 武陟县| 德清县|