視頻文件格式和視頻編碼方式區別_第1頁
視頻文件格式和視頻編碼方式區別_第2頁
視頻文件格式和視頻編碼方式區別_第3頁
視頻文件格式和視頻編碼方式區別_第4頁
免費預覽已結束,剩余1頁可下載查看

視頻文件格式和視頻編碼方式區別.doc 免費下載

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.目前網上的各種視頻格式可以說是泛濫成災,加上各個PMP(Portable Media Player,便攜式媒體播放器)生產廠家的對自己產品在功能方面的炒作,使得很多人對視頻格式的名稱都是一頭的霧水。經常有些童鞋問我類似下面的問題。A問我說:“我的MP4分明寫著能播放AVI嗎?為什么這一個AVI文件就播放不了?”B問:“我的MP4支持Mpeg-4啊,為什么Mp4文件不能播放呢?”好的,下面我從最基本的概念給大家解釋一下,順便回答這兩個問題首先大家要清楚兩個概念,視頻文件格式和視頻編碼方式。視頻文件格式一般情況下從視頻文件的后綴名就能看出來,比如AVI,Mp4,3gp,mov,rmvb等等。這些

2、格式又叫做容器格式(container format),顧名思義就是用來裝東西的,你可以把它想象成為一個便當盒,或者野餐籃(兄弟,你沒吃早飯吧)。通常我們從網上下載的電影都是有聲音的(廢話,難道你只看默片!眾人扔香蕉皮),所以容器格式中一般至少包含有兩個數據流(stream),一個視頻流,一個音頻流,就好比是一個便當盒里裝著的配菜和米飯。視頻編碼方式則是指容器格式中視頻流數據的壓縮編碼方式,例如Mpeg-4,H.264,H.263,等等。而視頻數據采用了何種編碼方式是無法單單從文件格式的后綴上看出來的。就是說你無法從一個蓋著蓋子的便當盒外面看出里面裝了什么配菜。如果你想播放一個視頻文件,第一步

3、你的播放器(不論是軟件的還是硬件的)要能夠解析相應的容器格式,這一步也叫做解復用(demux),第二步你的播放器要能夠解碼其中所包含視頻流和音頻流。這樣影片才能播放出來。 打個不太恰當的比方,播放器好比你雇用的一個試菜員,由他來品嘗便當(視頻文件),然后告訴你便當里裝了什么東西。(沒天理阿!我想自己吃,好的當然可以,0x00 00 01 B6 05 FF 36 1A 50 , 俄)所以試菜員首先要懂得如何打開便當盒,還要知道吃的出來便當盒里裝了什么配菜,這樣你才能獲得你想要的信息?;剡^頭來看前面的兩個問題,用以上的比喻翻譯一下。問題A,我的試菜員能打開AVI這種便當的,為什么我不能知道里面裝了

4、什么?回答很簡單,雖然他能夠打開便當,但是吃不出里面的東西是什么。理論上沒有一個播放器能夠播放所有的AVI格式的電影,因為你不知道我會往里面放什么配菜。問題B,我的試菜員吃過Mpeg-4這種牛排阿,為什么不能打開Mp4這種便當盒呢?這個問題通過翻譯之后看起來已經不是問題了,Mpeg-4是視頻編碼方式,而Mp4是容器格式,兩者本來就不是一個范疇里的東西。好了下面簡單介紹一下流行的視頻格式。1.AVI AVI是音頻視頻交錯(Audio Video Interleaved)的英文縮寫,它是Microsoft公司開發的一種數字音頻與視頻文件格式,允許視頻和音頻交錯在一起同步播放。AVI文件的格式是公開

5、并且免費的,大量的視頻愛好者在使用這種文件格式。很多PMP唯一能支持的格式就是AVI格式,一般的PMP都帶有可以轉換其他格式視頻成為AVI格式的軟件。AVI文件采用的是RIFF(Resource Interchange ,資源互換文件格式)文件結構,RIFF是Microsoft公司定義的一種用于管理windows環境中多媒體數據的文件格式。AVI格式包括2種:AVI 1.0和Open-DML AVI。AVI 1.0為傳統的AVI格式,Open-DML AVI是AVI 1.0的擴展。2.ASFASF(Advanced Systems Format)是一個開放格式,它能依靠多種協議在多種網絡環境下

6、支持數據的傳送。ASF是專為在IP網上傳送有同步關系的多媒體數據而設計的文件格式,所以ASF格式的信息特別適合在IP網上傳輸。ASF支持任意的壓縮/解壓縮編碼方式的流媒體,并可以使用任何一種底層網絡傳輸協議,具有很大的靈活性。目前網上以wmv為后綴的文件絕大多數采用的是ASF格式,WMV是微軟公司視頻編碼方式而不是文件格式。3.Mp4,3gp,movMP4格式是ISO-IEC Mpeg-4協議Part 14中定義的容器格式。MP4格式實際上是對Apple公司開發的MOV格式(也稱Quicktime格式)的一種改進,兩種格式差別很小。MOV格式廣泛應用于Mac OS操作系統,在Windows操作

7、系統上也可兼容,但是遠比不上AVI格式流行。而應用于3G手機上的音視頻文件格式3GP其實是MP4格式的一種簡化版本,3GP格式是一種由3GPP組織制定的多媒體容器格式(container format),3GPP組織形成的通訊協議是目前全世界手機廠商使用最廣的,而3GP格式當然也是手機視頻格式的絕對主流。MP4,MOV,3GP格式可以說具有相同的文件結構。另外還有flv,mkv,mpg等等許多其他格式。介紹完了格式之后,我再給大家說明一下解復用的問題。前面講到了容器格式中包含視頻和音頻數據,怎樣將這些數據分離,并送到相應的解碼器,而且還要保證音視頻的同步性,這是下面要討論的話題。各種格式的解服

8、用并不相同。首先介紹AVI格式。(一)AVI格式的結構和解復用AVI文件采用的是RIFF(Resource Interchange ,資源互換文件格式)文件結構,RIFF是Microsoft公司定義的一種用于管理windows環境中多媒體數據的文件格式。AVI格式包括2種:AVI 1.0和Open-DML AVI。AVI 1.0為傳統的AVI格式,Open-DML AVI是AVI 1.0的擴展。 構造AVI文件的基本單元有2種:列表(LIST)和數據塊(Chunk),其基本結構如圖所示。數據塊的前4個字節為數據塊的ID,接著的4個字節表示數據塊的長度。列表的前4個字節為“RIFF”或者“LIS

9、T”。列表可以嵌套子列表和數據塊。需要注意的是所給出的數據塊和列表的長度是不包含其前8個字節的。AVI格式的文件結構見圖。對于AVI 1.0格式,整個文件由一個開頭4字節為RIFF,ID為AVI的列表(簡稱RIFF AVI列表)組成。對于Open-DML AVI格式,若尺寸不超過1G,則文件只包含一個RIFF AVI列表;若尺寸超過1G,則包含一個RIFF AVI列表和幾個RIFF AVIX列表。Open-DML AVI所獨有的數據塊和列表在圖中作了標注。RIFF-AVI列表包含3個子列表和一個數據塊,其ID分別為hdrl,INFO,movi和idx1,其中INFO列表和ID為idx1數據塊是

10、可選的。而 RIFF AVIX只包含一個movi列表以存儲數據,頭信息全都存儲在RIFF AVI中。下面對RIFF-AVI列表的幾個組成部分作詳細介紹。(本文檔中有關AVI格式的結構體定義見AviFormat.h,想要源代碼的留下郵箱)(1)hdrl列表hdrl列表包含一個ID為avih的數據塊,一個ID為odml的列表(僅Open-DML AVI格式具備)及幾個ID為strl的列表。strl列表的個數和文件中所包含流(stream)的個數相等。avih數據塊的包含最大數據率、總幀數、每幀圖像的顯示時間等數據格式信息。其具體格式見結構體AVIMAINHEADER。strl列表至少包含一個ID為

11、strh的數據塊和一個ID為strf的數據塊,而ID為strd的數據塊(保存編解碼器需要的一些配置信息,沒有固定結構)和ID為strn的數據塊(保存流的名字)是可選的。strh數據塊包含數據流類型、流的編解碼方式和每秒采樣數等有關流媒體的信息。其格式見結構體AVISTREAMHEADER。strf數據塊緊跟在strh數據塊之后,其結構視流媒體類型而定,如果 strh塊對應的是視頻數據流,則 strf的格式可見結構體VIDEOSTREAMHEADER。如果 strh塊對應的是音頻數據流,則strf的格式可見結構體AUDIOSTREAMHEADER。odml列表中包含文件總幀數等信息,具體格式見結

12、構體AVIEXTHEADER。indx數據塊包含文件的索引數據,用于播放過程中進度條的拖動。其結構可能為結構體AVISUPERINDEX, AVIFIELDINDEX,AVISTDINDEX三者中的一種。值得注意的是avih數據塊中提供的總幀數為所在的RIFF AVI列表包含的數據。而odml列表給出的總幀數則是所有的RIFF AVI列表和RIFF AVIX列表包含數據幀數之和。若文件不含RIFF AVIX列表,則兩個值相等。(2)movi列表movi列表可包含音頻,視頻,字幕或索引數據塊。音頻數據塊的ID為“#wb”,未壓縮的視頻數據塊的ID為“#db”,經過壓縮編碼的視頻數據塊的ID為“#dc”,字幕數據塊的ID為“#tx”,索引數據塊(僅Open-DML AVI格式具備)的ID為ix#或#ix。索引數據塊可能為結構體AVIFIELDINDEX或AVISTDINDEX。(“#”為各個流的通道號,可為“00”,“01”等,例如“00dc”表示視頻塊,“01wb”表示音頻塊)movi列表有2種結構,第一種如圖2.3所示,各種數據塊直接存放在列表中。另一種結構如圖所示,movi列表由數個rec列表組成,數據塊存放于rec列表中。(3) idx1數據塊idx1索引數據塊位于movi數據塊之后,包含定義 movi數據塊的索引數據,是可選塊,用于播放過程中進度條的拖動。結構可見結構

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論