亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        MP4共享FLV數(shù)據(jù)研究與實(shí)現(xiàn)

        2014-11-10 07:09:42李興華楊天奇
        關(guān)鍵詞:文件共享存儲(chǔ)空間標(biāo)簽

        李興華,楊天奇

        (暨南大學(xué) 計(jì)算機(jī)應(yīng)用技術(shù)系,廣東 廣州 510632)

        進(jìn)入Web 2.0時(shí)代后,國外的Youtube,國內(nèi)的優(yōu)酷、土豆網(wǎng)等視頻分享網(wǎng)站快速發(fā)展,F(xiàn)LV因?yàn)檎加玫拇鎯?chǔ)空間小、加載速度快,已經(jīng)成為各主流視頻網(wǎng)站存儲(chǔ)視頻的主要格式。隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,越來越多的人喜歡在移動(dòng)設(shè)備上觀看在線視頻,而MP4格式[1]則是IOS、Android等主流移動(dòng)智能操作系統(tǒng)原生支持的視頻格式。將FLV視頻轉(zhuǎn)化為MP4視頻,是視頻網(wǎng)站為支持這些移動(dòng)設(shè)備在線觀看的傳統(tǒng)方法。這種方法的缺點(diǎn)是對(duì)于每個(gè)FLV視頻需要轉(zhuǎn)化出一個(gè)大小相當(dāng)?shù)腗P4文件,占用服務(wù)器巨大的存儲(chǔ)空間[2-3],同時(shí)需要耗費(fèi)較多的轉(zhuǎn)化時(shí)間。現(xiàn)在越來越多的公司采用HTTP Live Streaming(HLS)[4]將流媒體切分為若干 Transport Stream(TS)片段,然后通過一個(gè)擴(kuò)展的m3u8播放列表文件將這些TS片段集中起來供客戶端播放器接收。其優(yōu)點(diǎn)是用戶切換進(jìn)度更快,臨時(shí)文件??;缺點(diǎn)是生成和分發(fā)比較復(fù)雜,生成高清視頻TS片段時(shí)服務(wù)器負(fù)載較高。MP4格式共享FLV格式數(shù)據(jù)的優(yōu)勢是它能以極小存儲(chǔ)空間高效方便地滿足主流移動(dòng)平臺(tái)的在線視頻播放。

        1 相關(guān)技術(shù)

        1.1 FLV視頻格式簡介

        Flash Video(FLV)[5]流媒體格式是隨著 Flash MX 的推出而發(fā)展而來的視頻格式。FLV文件占用的存儲(chǔ)空間非常小。FLV還有解碼效率高和視頻清晰等優(yōu)點(diǎn)。因此,主要的在線視頻網(wǎng)站均使用FLV格式文件存儲(chǔ)視頻,為用戶提供優(yōu)質(zhì)的在線視頻服務(wù)。

        FLV是一種全新的流媒體視頻格式,它利用了網(wǎng)頁中廣泛使用的Flash Player平臺(tái),將FLV視頻整合到Flash動(dòng)畫中。只要訪問者能夠正常觀看Flash動(dòng)畫,就能觀看FLV格式視頻,而無需再額外安裝其他視頻插件。因此,F(xiàn)LV格式的使用給視頻的傳播帶來了極大便利。

        FLV是一個(gè)二進(jìn)制文件,文件符合流式傳輸?shù)奶攸c(diǎn),由文件頭(FLV Header)和文件體(FLV Body)組成。FLV文件結(jié)構(gòu)圖如圖1所示。文件頭定義了Flash文檔的版本、是否壓縮、文件大小、場景大小、幀率和總幀數(shù)[6]。文件體由大量的標(biāo)簽(Tag)組成,文件體的最后是一個(gè)結(jié)束標(biāo)簽。Tag又可以分成Audio和Video和Script 3類,分別代表音頻流、視頻流和腳本流。每一個(gè)Tag都包括一個(gè)標(biāo)簽頭(Header)和一個(gè)數(shù)據(jù)體(Body)。

        圖1 FLV文件結(jié)構(gòu)圖

        通過分析Tag的Header部分,可以立刻知道這個(gè)Tag的類型代碼和長度,標(biāo)簽結(jié)構(gòu)如表1所示。

        表1 標(biāo)簽結(jié)構(gòu)

        通過解析FLV格式而得到的Tag內(nèi)容里的音視頻數(shù)據(jù)就是MP4文件格式所需要共享的FLV文件格式的內(nèi)容。

        由于主流移動(dòng)平臺(tái)對(duì)Flash Player支持不夠,存儲(chǔ)為FLV格式的視頻不能有效滿足移動(dòng)平臺(tái)觀看,而MP4格式卻是可以得到廣泛支持的視頻格式,因此將這些FLV視頻轉(zhuǎn)化成MP4格式是視頻網(wǎng)站的傳統(tǒng)做法。

        1.2 MP4視頻格式簡介

        MP4[7],全稱 MPEG-4 Part 14[8],是一種使用 MPEG-4的多媒體電腦檔案格式,后綴名為.mp4。

        MP4視頻文件封裝格式是基于QuickTime[8]容器格式定義的。MP4文件格式是一個(gè)十分開放的容器,幾乎可以用來描述所有的媒體結(jié)構(gòu),MP4文件中的媒體描述與媒體數(shù)據(jù)是分開的,并且媒體數(shù)據(jù)的組織也很自由,不一定要按照時(shí)間順序排列。

        MP4文件格式是以面向?qū)ο蟮募軜?gòu)來描述文件的,對(duì)象被稱為box。MP4文件中的所有數(shù)據(jù)都裝在box中,也就是說,MP4文件由若干個(gè)box組成。每個(gè)box的結(jié)構(gòu)都由大小、類型和內(nèi)容組成。一個(gè)box還可以包含別的box,這種分層結(jié)構(gòu)以及box的自身結(jié)構(gòu)使得box的插入和刪除十分方便。

        同時(shí),MP4也支持流媒體[9]。MP4目前被廣泛用于封裝 H.264[10]視頻和 Advanced Audio Coding(AAC)音頻,是高清視頻的代表。

        通過對(duì)FLV和MP4的介紹可知,如果能將FLV轉(zhuǎn)化MP4的傳統(tǒng)方法加以創(chuàng)新,使MP4共享FLV數(shù)據(jù),不僅能在存儲(chǔ)空間上大大節(jié)省成本,計(jì)算效率也能大幅度提高,具有很高的研究價(jià)值和現(xiàn)實(shí)意義。

        2 MP4文件共享FLV文件媒體數(shù)據(jù)

        2.1 MP4格式特點(diǎn)

        MP4由一系列的box組成,box是一種獨(dú)特類型的由識(shí)別符和長度構(gòu)成的面向?qū)ο蟮慕ㄖK,也稱為atom。表2列出了常見的box類型。

        表2 常見box類型

        通常來說,一個(gè)MP4文件主要包含兩個(gè)atom,分別是存儲(chǔ)元數(shù)據(jù)的 Movie atom(moov)和存儲(chǔ)媒體數(shù)據(jù)的Media Data atom(mdat)[11-14]。

        一個(gè) MP4文件由一個(gè)ftyp類型的 box開始,ftyp包含關(guān)于文件的一些信息。ftyp之后有且只有一個(gè)moov類型的 box,它是一種容器 box,子 box包含了媒體的元數(shù)據(jù)信息。MP4文件的媒體數(shù)據(jù)包含在mdat類型的box中,該類型的box也是容器box,可以有多個(gè)子box。圖2展示了MP4文件的結(jié)構(gòu)樹。

        moov包含了文件媒體的所有元數(shù)據(jù)信息,moov容器box通常在靠近該文件的開頭或結(jié)尾地方。

        trak是一個(gè) container box,其子box包含了該軌道的媒體數(shù)據(jù)引用和描述。一個(gè)MP4文件中的媒體可以包含多個(gè)track,并且至少有一個(gè)軌道,這些軌道之間彼此獨(dú)立,有各自的時(shí)間和空間信息。

        mdia容器的軌道媒體信息定義了軌道媒體類型。

        minf容器包含了所有關(guān)于軌道媒體中定義特征信息的對(duì)象。

        stbl樣品表box包含了軌道里所有媒體樣本的時(shí)間和數(shù)據(jù)索引信息。通過樣本表,可以定位樣本的時(shí)間,確定它們的類型(例如I-幀),并確定它們的大小以及文件中的偏移量。

        圖2 MP4文件結(jié)構(gòu)樹

        stsc提供樣本塊的部分?jǐn)?shù)據(jù)的偏移信息表。媒體數(shù)據(jù)里的樣本被分組為塊。塊可以是不同的大小,塊內(nèi)的樣本可以具有不同的尺寸。這個(gè)表可以用于找到塊的位置以及相關(guān)的樣本描述。偏移信息表是緊湊的編碼。每個(gè)條目給出運(yùn)行塊的第一個(gè)塊的索引。

        stsz包含樣本數(shù)和一張描述各個(gè)樣本大小 (以字節(jié)為單位)的表。

        stso、co64對(duì)象包含一張塊的偏移表,表里給出了文件中每個(gè)塊的索引,允許使用32位或64位偏移,64位偏移在文件超過4 GB時(shí)使用。

        2.2 MP4文件共享FLV文件數(shù)據(jù)

        MP4文件中的媒體描述與媒體數(shù)據(jù)是分開的[6],MP4的媒體數(shù)據(jù)的組織也很自由,可以不用按照時(shí)間順序排列。MP4文件共享FLV文件媒體數(shù)據(jù)關(guān)鍵就在于生成一個(gè)共享FLV媒體數(shù)據(jù)的MP4文件頭部,稱為共享MP4頭部。

        共享MP4頭部在媒體描述中的stco box記錄每個(gè)媒體數(shù)據(jù)數(shù)據(jù)塊在完整MP4文件中位置,完整MP4文件由共享MP4頭部和對(duì)應(yīng)的FLV文件組成。即在原有FLV文件的基礎(chǔ)上,再增加一個(gè)只有FLV文件1%左右大小的共享MP4頭部,就可以共享FLV文件的視頻內(nèi)容。

        對(duì)于在線視頻網(wǎng)站,可以不用在視頻服務(wù)器里為每個(gè)FLV視頻轉(zhuǎn)化一個(gè)完整的MP4視頻,視頻網(wǎng)站可以通過生成共享MP4頭部共享FLV視頻數(shù)據(jù),節(jié)省巨大的存儲(chǔ)空間。

        對(duì)于一個(gè)已經(jīng)存在FLV文件格式的視頻,只需要用共享工具生成對(duì)應(yīng)的共享MP4頭部,就可以同時(shí)滿足對(duì)這個(gè)視頻的FLV和MP4兩種格式的訪問需求。

        當(dāng)用戶通過移動(dòng)設(shè)備觀看某個(gè)視頻時(shí),視頻網(wǎng)絡(luò)的服務(wù)器只需要順序返回這個(gè)視頻的共享MP4頭部和FLV視頻文件即可。

        MP4文件共享FLV文件數(shù)據(jù)方案以極小的存儲(chǔ)代價(jià)和計(jì)算代價(jià),滿足了移動(dòng)設(shè)備觀看已經(jīng)存在的海量FLV視頻文件的需求。

        2.3 基于FFMPEG庫的共享工具簡介

        MP4文件共享FLV文件數(shù)據(jù)的共享工具主要是在開源項(xiàng)目FFMPEG的基礎(chǔ)上實(shí)現(xiàn)的。

        FFMPEG是一個(gè)非常優(yōu)秀的開源免費(fèi)跨平臺(tái)的視頻和音頻流方案,屬于自由軟件,采用LGPL或GPL許可證(依據(jù)所選擇的組件)。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。

        FFMPEG是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。它包括了目前領(lǐng)先的音/視頻編碼庫libavcodec等。

        共享工具主要使用了FFMPEG庫里的libavformat、libavcodec和ffmpeg項(xiàng)目。libavformat用于各種音視頻封裝格式的生成和解析,包括獲取解碼所需信息以生成解碼上下文結(jié)構(gòu)和讀取音視頻幀等功能;libavcodec用于各種類型聲音/圖像編解碼;ffmpeg項(xiàng)目提供的一個(gè)工具可用于格式轉(zhuǎn)換、解碼等。

        2.4 共享工具生成共享MP4文件

        共享工具生成共享MP4文件,首先需要將FLV文件解封裝提取出FLV文件中的視頻信息,然后將這些視頻描述信息寫入共享MP4文件中。

        在FLV文件中解析出的每個(gè)標(biāo)簽里,數(shù)據(jù)區(qū)的內(nèi)容是需要共享的內(nèi)容,也是FLV文件里的最主要組成部分。將FLV文件中每個(gè)標(biāo)簽的數(shù)據(jù)區(qū)在FLV文件中的偏移值記錄在共享MP4文件的stco對(duì)象中,將FLV的每個(gè)標(biāo)簽的數(shù)據(jù)區(qū)長度記錄在共享MP4文件的stsz對(duì)象中。

        共享MP4文件的mdat對(duì)象的大小就是FLV文件的大小,mdat對(duì)象的內(nèi)容則不需要寫入共享MP4文件,因?yàn)?mdat對(duì)象內(nèi)容正是對(duì)應(yīng)的整個(gè)FLV文件。共享MP4文件和對(duì)應(yīng)的FLV文件可以組成一個(gè)完整的MP4文件。

        共享工具需要生成的共享MP4文件是一個(gè)除去mdat對(duì)象內(nèi)容的MP4文件。在初始生成共享MP4文件過程中,需要在共享MP4文件的stco對(duì)象中記錄對(duì)應(yīng)FLV中每個(gè)音視頻標(biāo)簽的內(nèi)容數(shù)據(jù)在FLV文件的位置,即共享MP4文件stco對(duì)象存儲(chǔ)著FLV文件中標(biāo)簽的內(nèi)容的偏移值,如圖3所示。

        2.5 修正共享MP4文件

        共享工具初始生成的共享MP4文件中的stco對(duì)象記錄的偏移值是在FLV文件中的偏移值,不是共享MP4文件和FLV文件組合成的完整MP4文件中的偏移值,因此需要修正共享MP4文件的stco對(duì)象中記錄的原始偏移值。需要將共享MP4文件的stco對(duì)象中的原始偏移值加上共享MP4文件的大小,如圖4所示,這樣得出的位置值才是共享MP4文件和對(duì)應(yīng)FLV文件組合成的完整MP4文件里的真實(shí)偏移值。

        圖3 初始成共享MP4文件

        圖4 修正共享MP4文件

        本文主要研究了一種傳統(tǒng)流媒體文件FLV在適應(yīng)移動(dòng)設(shè)備上播放的一種高效、節(jié)約成本的可行性方案。MP4共享FLV數(shù)據(jù)利用MP4和FLV兩種格式的特點(diǎn)達(dá)到數(shù)據(jù)共享的目的,從而滿足了移動(dòng)設(shè)備在線觀看的需求。

        相對(duì)于直接轉(zhuǎn)換MP4文件的方式,MP4文件共享FLV文件數(shù)據(jù)方案節(jié)約了近一半的存儲(chǔ)空間,并且對(duì)于計(jì)算的消耗極小。對(duì)于擁有上千萬部FLV視頻內(nèi)容的視頻網(wǎng)站,利用共享數(shù)據(jù)方案可節(jié)省上千萬元的存儲(chǔ)成本,且維護(hù)起來非常方便、可靠。相對(duì)于TS流方案,MP4文件共享FLV文件數(shù)據(jù)方案對(duì)源服務(wù)器的負(fù)載壓力小很多,且生成、分發(fā)以及維護(hù)也簡單很多。

        由于MP4文件播放前需要加載完整個(gè)頭部才能播放,因此對(duì)于低質(zhì)量的長視頻文件,利用HLS協(xié)議提供服務(wù)體驗(yàn)會(huì)更好;對(duì)于高清短視頻,使用MP4文件共享FLV文件數(shù)據(jù)方案是最佳選擇。

        [1]SINGER D,BELKNAP W,F(xiàn)RANCESCHINI G.ISO media file formatspecification[R].ISO/IEC JTC1/SC29/WG11 MPEG01/N4270-1,2001.

        [2]陳利,呂格莉,潘正清.流媒體視頻存儲(chǔ)服務(wù)器設(shè)計(jì)與研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(4):903-906

        [3]謝建國,陳松喬.視頻存儲(chǔ)技術(shù)發(fā)展綜述[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(9):17-19.

        [4]維基百科.http://zh.wikipedia.org/wiki/HTTP_Live_Streaming,2013-03-14.

        [5]Adobe Macromedia video file format specification version10.http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf,2013-04.

        [6]王奎澎,劉建輝.Flv文件格式及其嵌入式應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010,19(3):190-191.

        [7]ISO/IEC 14496-14, information technology-coding of audio-visual objects-part 14: MP4 file format[S].

        [8]ISO/IEC 14496-10, information technology-coding of audio-visual objects-part 10:Advanced video coding[S].

        [9]Apple.QuickTime file format specification[S].

        [10]THOMAS W,GARY S,GISLE B,et al.Overview of the H.264 PAVC video coding standard[J].IEEE Transactions on Circuits and Systems for Video Technology, 2003(7):560-576.

        [11]ISMA.Internet streaming media alliance implementation specification(Version 2.0)[M].

        [12]周瑾,支琤,宋利.流媒體應(yīng)用 TS和 MP4格式分析[J].信息技術(shù),2007(7):16-18.

        [13]趙麗娜,韓冬梅,薛華成.一種有效加密 MP4文件的方法[J].計(jì)算機(jī)應(yīng)用與軟件,2010,10(10):22-23.

        [14]鄭翔,周秉峰,葉志遠(yuǎn),等.流文件 MP4文件的核心技術(shù)[J].計(jì)算機(jī)應(yīng)用,2004(5):76-78.

        猜你喜歡
        文件共享存儲(chǔ)空間標(biāo)簽
        基于多種群協(xié)同進(jìn)化算法的數(shù)據(jù)并行聚類算法
        蘋果訂閱捆綁服務(wù)Apple One正式上線
        用好Windows 10保留的存儲(chǔ)空間
        無懼標(biāo)簽 Alfa Romeo Giulia 200HP
        車迷(2018年11期)2018-08-30 03:20:32
        不害怕撕掉標(biāo)簽的人,都活出了真正的漂亮
        海峽姐妹(2018年3期)2018-05-09 08:21:02
        標(biāo)簽化傷害了誰
        省級(jí)氣象數(shù)據(jù)文件共享存儲(chǔ)管理系統(tǒng)研究
        基于多進(jìn)制查詢樹的多標(biāo)簽識(shí)別方法
        一種基于Web瀏覽器的文件共享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        Soulseek帶你進(jìn)入歐美音樂殿堂
        亚洲天堂久久午夜福利| 国产丝袜在线精品丝袜不卡| 国产av无码专区亚洲av极速版| 国产剧情国产精品一区| 久久国产香蕉一区精品天美| 91青青草视频在线播放| 日本视频一区二区三区一| 在线成人爽a毛片免费软件| 日韩视频第二页| 国内精品人人妻少妇视频| av网站大全免费在线观看| 色妞色视频一区二区三区四区| 91精品福利观看| 丝袜美女美腿一区二区| 精品亚洲av乱码一区二区三区| 日韩精品久久中文字幕| 中国老太婆bb无套内射| 88久久精品无码一区二区毛片| 亚洲熟妇乱子伦在线| 91热久久免费频精品99| 变态另类手机版av天堂看网 | 国产一区二区三区不卡视频| 国产无夜激无码av毛片| 欧美性猛交xxxx乱大交蜜桃| 亚洲国产av剧一区二区三区| 日本a级特级黄色免费| 国产精品人人做人人爽| 国产精品久久一区二区三区| 国产高清a| av网站不卡的av在线| 色欲aⅴ亚洲情无码av| 国产精品刺激好大好爽视频| 中文字幕久区久久中文字幕| 天堂资源中文网| 亚洲精品久久久久久动漫| 波霸影院一区二区| 国产自拍三级黄片视频| 国产精品无码久久综合| 色窝窝在线无码中文| 国产亚洲精品高清视频| 日本韩国男男作爱gaywww|