《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > MP4共享FLV數據研究與實現
MP4共享FLV數據研究與實現
來源:微型機與應用2014年第3期
李興華,楊天奇
(暨南大學 計算機應用技術系,廣東 廣州 510632)
摘要: MP4共享FLV數據的研究旨在以極小存儲空間高效方便地實現MP4文件與FLV文件的數據共享,滿足主流移動平臺的在線視頻播放。通過研究發現,只需要利用FLV文件1%左右的存儲空間,就可以支持移動設備觀看FLV視頻內容。MP4共享FLV數據具有很高的理論價值和現實意義。
Abstract:
Key words :

摘  要: MP4共享FLV數據的研究旨在以極小存儲空間高效方便地實現MP4文件與FLV文件的數據共享,滿足主流移動平臺的在線視頻播放。通過研究發現,只需要利用FLV文件1%左右的存儲空間,就可以支持移動設備觀看FLV視頻內容。MP4共享FLV數據具有很高的理論價值和現實意義。
關鍵詞: 視頻網站;MP4;FLV;移動設備;數據共享

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

 Flash Video(FLV)[5]流媒體格式是隨著Flash MX的推出而發展而來的視頻格式。FLV文件占用的存儲空間非常小。FLV還有解碼效率高和視頻清晰等優點。因此,主要的在線視頻網站均使用FLV格式文件存儲視頻,為用戶提供優質的在線視頻服務。
 FLV是一種全新的流媒體視頻格式,它利用了網頁中廣泛使用的Flash Player平臺,將FLV視頻整合到Flash動畫中。只要訪問者能夠正常觀看Flash動畫,就能觀看FLV格式視頻,而無需再額外安裝其他視頻插件。因此,FLV格式的使用給視頻的傳播帶來了極大便利。
 FLV是一個二進制文件,文件符合流式傳輸的特點,由文件頭(FLV Header)和文件體(FLV Body)組成。FLV文件結構圖如圖1所示。文件頭定義了Flash文檔的版本、是否壓縮、文件大小、場景大小、幀率和總幀數[6]。文件體由大量的標簽(Tag)組成,文件體的最后是一個結束標簽。Tag又可以分成Audio和Video和Script 3類,分別代表音頻流、視頻流和腳本流。每一個Tag都包括一個標簽頭(Header)和一個數據體(Body)。

 通過解析FLV格式而得到的Tag內容里的音視頻數據就是MP4文件格式所需要共享的FLV文件格式的內容。
由于主流移動平臺對Flash Player支持不夠,存儲為FLV格式的視頻不能有效滿足移動平臺觀看,而MP4格式卻是可以得到廣泛支持的視頻格式,因此將這些FLV視頻轉化成MP4格式是視頻網站的傳統做法。
1.2 MP4視頻格式簡介
 MP4[7],全稱MPEG-4 Part 14[8],是一種使用MPEG-4的多媒體電腦檔案格式,后綴名為.mp4。
 MP4視頻文件封裝格式是基于QuickTime[8]容器格式定義的。MP4文件格式是一個十分開放的容器,幾乎可以用來描述所有的媒體結構,MP4文件中的媒體描述與媒體數據是分開的,并且媒體數據的組織也很自由,不一定要按照時間順序排列。
 MP4文件格式是以面向對象的架構來描述文件的,對象被稱為box。MP4文件中的所有數據都裝在box中,也就是說,MP4文件由若干個box組成。每個box的結構都由大小、類型和內容組成。一個box還可以包含別的box,這種分層結構以及box的自身結構使得box的插入和刪除十分方便。
 同時,MP4也支持流媒體[9]。MP4目前被廣泛用于封裝H.264[10]視頻和Advanced Audio Coding(AAC)音頻,是高清視頻的代表。
 通過對FLV和MP4的介紹可知,如果能將FLV轉化MP4的傳統方法加以創新,使MP4共享FLV數據,不僅能在存儲空間上大大節省成本,計算效率也能大幅度提高,具有很高的研究價值和現實意義。
2 MP4文件共享FLV文件媒體數據
2.1 MP4格式特點

 MP4由一系列的box組成,box是一種獨特類型的由識別符和長度構成的面向對象的建筑塊,也稱為atom。表2列出了常見的box類型。

 通常來說,一個MP4文件主要包含兩個atom,分別是存儲元數據的Movie atom(moov)和存儲媒體數據的Media Data atom(mdat)[11-14]。
 一個MP4文件由一個ftyp類型的box開始,ftyp包含關于文件的一些信息。ftyp之后有且只有一個moov類型的box,它是一種容器box,子box包含了媒體的元數據信息。MP4文件的媒體數據包含在mdat類型的box中,該類型的box也是容器box,可以有多個子box。圖2展示了MP4文件的結構樹。

 moov包含了文件媒體的所有元數據信息,moov容器box通常在靠近該文件的開頭或結尾地方。
 trak是一個container box,其子box包含了該軌道的媒體數據引用和描述。一個MP4文件中的媒體可以包含多個track,并且至少有一個軌道,這些軌道之間彼此獨立,有各自的時間和空間信息。
 mdia容器的軌道媒體信息定義了軌道媒體類型。
 minf容器包含了所有關于軌道媒體中定義特征信息的對象。
stbl樣品表box包含了軌道里所有媒體樣本的時間和數據索引信息。通過樣本表,可以定位樣本的時間,確定它們的類型(例如I-幀),并確定它們的大小以及文件中的偏移量。
 stsc提供樣本塊的部分數據的偏移信息表。媒體數據里的樣本被分組為塊。塊可以是不同的大小,塊內的樣本可以具有不同的尺寸。這個表可以用于找到塊的位置以及相關的樣本描述。偏移信息表是緊湊的編碼。每個條目給出運行塊的第一個塊的索引。
 stsz包含樣本數和一張描述各個樣本大?。ㄒ宰止潪閱挝唬┑谋?。
 stso、co64對象包含一張塊的偏移表,表里給出了文件中每個塊的索引,允許使用32位或64位偏移,64位偏移在文件超過4 GB時使用。
2.2 MP4文件共享FLV文件數據
 MP4文件中的媒體描述與媒體數據是分開的[6],MP4的媒體數據的組織也很自由,可以不用按照時間順序排列。MP4文件共享FLV文件媒體數據關鍵就在于生成一個共享FLV媒體數據的MP4文件頭部,稱為共享MP4頭部。
 共享MP4頭部在媒體描述中的stco box記錄每個媒體數據數據塊在完整MP4文件中位置,完整MP4文件由共享MP4頭部和對應的FLV文件組成。即在原有FLV文件的基礎上,再增加一個只有FLV文件1%左右大小的共享MP4頭部,就可以共享FLV文件的視頻內容。
 對于在線視頻網站,可以不用在視頻服務器里為每個FLV視頻轉化一個完整的MP4視頻,視頻網站可以通過生成共享MP4頭部共享FLV視頻數據,節省巨大的存儲空間。
 對于一個已經存在FLV文件格式的視頻,只需要用共享工具生成對應的共享MP4頭部,就可以同時滿足對這個視頻的FLV和MP4兩種格式的訪問需求。
當用戶通過移動設備觀看某個視頻時,視頻網絡的服務器只需要順序返回這個視頻的共享MP4頭部和FLV視頻文件即可。
 MP4文件共享FLV文件數據方案以極小的存儲代價和計算代價,滿足了移動設備觀看已經存在的海量FLV視頻文件的需求。
2.3 基于FFMPEG庫的共享工具簡介
 MP4文件共享FLV文件數據的共享工具主要是在開源項目FFMPEG的基礎上實現的。
FFMPEG是一個非常優秀的開源免費跨平臺的視頻和音頻流方案,屬于自由軟件,采用LGPL或GPL許可證(依據所選擇的組件)。它提供了錄制、轉換以及流化音視頻的完整解決方案。
 FFMPEG是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程序。它包括了目前領先的音/視頻編碼庫libavcodec等。
 共享工具主要使用了FFMPEG庫里的libavformat、libavcodec和ffmpeg項目。libavformat用于各種音視頻封裝格式的生成和解析,包括獲取解碼所需信息以生成解碼上下文結構和讀取音視頻幀等功能;libavcodec用于各種類型聲音/圖像編解碼;ffmpeg項目提供的一個工具可用于格式轉換、解碼等。
2.4 共享工具生成共享MP4文件
 共享工具生成共享MP4文件,首先需要將FLV文件解封裝提取出FLV文件中的視頻信息,然后將這些視頻描述信息寫入共享MP4文件中。
 在FLV文件中解析出的每個標簽里,數據區的內容是需要共享的內容,也是FLV文件里的最主要組成部分。將FLV文件中每個標簽的數據區在FLV文件中的偏移值記錄在共享MP4文件的stco對象中,將FLV的每個標簽的數據區長度記錄在共享MP4文件的stsz對象中。
 共享MP4文件的mdat對象的大小就是FLV文件的大小,mdat對象的內容則不需要寫入共享MP4文件,因為mdat對象內容正是對應的整個FLV文件。共享MP4文件和對應的FLV文件可以組成一個完整的MP4文件。
共享工具需要生成的共享MP4文件是一個除去mdat對象內容的MP4文件。在初始生成共享MP4文件過程中,需要在共享MP4文件的stco對象中記錄對應FLV中每個音視頻標簽的內容數據在FLV文件的位置,即共享MP4文件stco對象存儲著FLV文件中標簽的內容的偏移值,如圖3所示。


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

 本文主要研究了一種傳統流媒體文件FLV在適應移動設備上播放的一種高效、節約成本的可行性方案。MP4共享FLV數據利用MP4和FLV兩種格式的特點達到數據共享的目的,從而滿足了移動設備在線觀看的需求。
 相對于直接轉換MP4文件的方式,MP4文件共享FLV文件數據方案節約了近一半的存儲空間,并且對于計算的消耗極小。對于擁有上千萬部FLV視頻內容的視頻網站,利用共享數據方案可節省上千萬元的存儲成本,且維護起來非常方便、可靠。相對于TS流方案,MP4文件共享FLV文件數據方案對源服務器的負載壓力小很多,且生成、分發以及維護也簡單很多。
 由于MP4文件播放前需要加載完整個頭部才能播放,因此對于低質量的長視頻文件,利用HLS協議提供服務體驗會更好;對于高清短視頻,使用MP4文件共享FLV文件數據方案是最佳選擇。
參考文獻
[1] SINGER D, BELKNAP W, FRANCESCHINI G. ISO media file format specif ication[R]. ISO/IEC JTC1/SC29/WG11 MPEG01/N4270-1, 2001.
[2] 陳利,呂格莉,潘正清.流媒體視頻存儲服務器設計與研究[J].計算機工程與設計,2010,31(4):903-906
[3] 謝建國,陳松喬.視頻存儲技術發展綜述[J].計算機工程與應用,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文件格式及其嵌入式應用[J].計算機系統應用,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] 周瑾,支琤,宋利.流媒體應用TS和MP4格式分析[J].信息技術,2007(7):16-18.
[13] 趙麗娜,韓冬梅,薛華成.一種有效加密MP4文件的方法[J].計算機應用與軟件,2010,10(10):22-23.
[14] 鄭翔,周秉峰,葉志遠,等.流文件MP4文件的核心技術[J].計算機應用,2004(5):76-78.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美精品亚洲精品| 国产日韩欧美三级| 性欧美超级视频| 日韩视频免费观看高清在线视频 | 亚洲另类一区二区| 亚洲福利视频三区| 亚洲成人在线| 黄色日韩在线| 国产在线乱码一区二区三区| 国产日韩av高清| 国产亚洲欧美一区二区| 国产精品综合视频| 国产日韩在线一区| 国产一区二区三区在线观看免费| 国产精品入口| 国产精品永久免费观看| 国产欧美精品在线| 国产日韩欧美另类| 狠狠色狠色综合曰曰| 伊人激情综合| 亚洲福利视频免费观看| 最新国产成人av网站网址麻豆| 亚洲激情欧美| 99国产精品国产精品久久| 一区二区三区回区在观看免费视频| 99re这里只有精品6| 亚洲网站在线看| 亚洲一区亚洲| 性欧美1819性猛交| 亚洲高清影视| 亚洲精品四区| 亚洲五月六月| 欧美一区二区三区精品| 久久久91精品国产| 欧美插天视频在线播放| 欧美日韩国产一级| 国产精品久久久久久久久动漫| 国产精品自在欧美一区| 韩日精品中文字幕| 亚洲国产精品99久久久久久久久| 最新国产成人av网站网址麻豆| 亚洲另类在线一区| 亚洲欧美不卡| 亚洲国产中文字幕在线观看| 一二三区精品福利视频| 欧美一区二区成人| 男人的天堂亚洲在线| 欧美三级网页| 国产一区二区三区丝袜| 亚洲欧洲一级| 亚洲伊人色欲综合网| 亚洲国产成人精品女人久久久 | 亚洲精品综合| 亚洲一区二区av电影| 久久精品91| 欧美激情第三页| 国产精品久久久久毛片软件| 狠久久av成人天堂| 亚洲毛片播放| 欧美呦呦网站| 一本色道婷婷久久欧美| 久久精品国产第一区二区三区最新章节| 久热精品视频| 国产精品福利网| 黄色国产精品| 一区二区三区视频在线观看| 久久精品国产免费观看| 亚洲视频香蕉人妖| 麻豆精品在线视频| 国产精品卡一卡二卡三| 亚洲电影网站| 午夜视频一区二区| 中国成人亚色综合网站| 久久一区二区三区超碰国产精品| 欧美日韩一区二区免费在线观看| 国产午夜精品福利| 夜夜嗨av一区二区三区中文字幕 | 久久精品2019中文字幕| 欧美日韩高清不卡| 国内精品视频在线播放| 一区二区电影免费观看| 亚洲人成在线免费观看| 欧美在线黄色| 欧美日韩一区二区三区四区在线观看 | 亚洲精品老司机| 欧美一区亚洲| 亚洲午夜精品17c| 蜜桃久久精品乱码一区二区| 国产精品手机视频| 亚洲日本电影| 91久久精品美女高潮| 欧美一进一出视频| 欧美视频在线视频| 亚洲日本中文字幕免费在线不卡| 久久国产日本精品| 午夜在线视频观看日韩17c| 欧美日韩国产123区| 亚洲电影av在线| 欧美影院在线播放| 欧美一区视频| 国产精品男人爽免费视频1| 99v久久综合狠狠综合久久| 亚洲日本国产| 麻豆精品一区二区av白丝在线| 国产日韩欧美在线看| 亚洲无毛电影| 亚洲一区免费| 欧美视频中文在线看| 日韩亚洲欧美综合| 亚洲视频导航| 欧美日韩亚洲一区在线观看| 亚洲精品日韩一| 99国产一区| 欧美喷水视频| 亚洲精品裸体| 在线一区二区日韩| 欧美日韩亚洲免费| 日韩亚洲欧美精品| 亚洲婷婷综合色高清在线| 欧美日韩国产一区精品一区 | 久久精品一区二区三区不卡| 国产日韩一区二区| 欧美亚洲网站| 久久激五月天综合精品| 国产视频久久| 久久黄金**| 老鸭窝毛片一区二区三区 | 亚洲电影免费在线| 亚洲精品国产精品乱码不99按摩 | 欧美激情中文字幕乱码免费| 亚洲欧洲一区| 中国av一区| 国产精品久久久久国产精品日日| 亚洲天堂男人| 香蕉久久夜色精品国产| 国产嫩草一区二区三区在线观看| 亚洲欧美激情一区| 久久国内精品自在自线400部| 国产在线成人| 亚洲人成在线播放网站岛国| 欧美激情亚洲另类| 一区二区三区高清不卡| 欧美一区二区日韩| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲精品1区2区| 欧美精品18| 一区二区免费在线播放| 欧美亚洲三区| 伊人成人网在线看| 一区二区激情视频| 国产嫩草影院久久久久| 亚洲国产精品悠悠久久琪琪| 欧美国产日韩精品| 亚洲视频一区二区| 久久久精品午夜少妇| 亚洲国产精品精华液2区45 | 亚洲欧美日韩网| 国产一区二区日韩| 91久久久国产精品| 欧美日韩精品在线观看| 亚洲一区二区伦理| 久久午夜视频| 亚洲免费久久| 欧美在线观看天堂一区二区三区| 在线不卡欧美| 亚洲午夜电影网| 国产自产女人91一区在线观看| 日韩视频在线免费| 国产精品一区二区在线观看| 亚洲欧洲日本国产| 欧美午夜电影在线| 校园激情久久| 农村妇女精品| 亚洲午夜久久久久久尤物| 久久亚洲春色中文字幕| 亚洲精品一区在线观看| 久久黄色网页| 99精品国产在热久久婷婷| 久久精品一区二区三区四区| 亚洲精品美女在线| 久久国产乱子精品免费女 | 久久精品99| 欧美婷婷六月丁香综合色| 亚洲第一精品影视| 国产精品高潮久久| 亚洲欧洲中文日韩久久av乱码| 国产精品久久久一区麻豆最新章节 | 国产日韩亚洲欧美| 一区二区日韩免费看| 国产揄拍国内精品对白 | 亚洲欧美精品伊人久久| 在线欧美日韩精品| 午夜在线一区二区| 亚洲免费电影在线| 免费成人高清在线视频| 亚洲欧美国产精品桃花| 欧美久久久久免费| 久久精品视频在线看| 国产精品网曝门| 一个人看的www久久|