常见音视频的编码方式和封装格式
視頻格式標準http://jingyan.baidu.com/article/fc07f98905797d12ffe519d6.html
視頻編碼標準只有 h.26x和mpegx。大多聽書格式都是對他們的實現。例如divx?xvid。
數字視頻技術廣泛應用于通信、計算機、廣播電視等領域,帶來了會議電視、可視電話及數字電視、媒體存儲等一系列應用,促使了許多視頻編碼標準的產生。ITU-T與ISO/IEC是制定視頻編碼標準的兩大組織,ITU-T的標準包括H.261、H.263、H.264,主要應用于實時視頻通信領域,如會議電視;MPEG系列標準是由ISO/IEC制定的,主要應用于視頻存儲(DVD)、廣播電視、因特網或無線網上的流媒體等。兩個組織也共同制定了一些標準,H.262標準等同于MPEG-2的視頻編碼標準,而最新的H.264標準則被納入MPEG-4的第10部分。
-----------------------------------------------------------------------------------------------------------------------------------
音頻編碼標準
LPC(Linear Predictive Coding,線性預測編碼)
?
瑞典Global IP Sound公司
GIPS
?
Audio Processing Technology 公司
Apt-X
?
英國BBC廣播公司
NICAM(Near Instantaneous Companded Audio Multiplex 準瞬時壓擴音頻復用)
?
歐洲通信標準協會(ETSI)
CELP(Code Excited Linear Prediction,碼激勵線性預測編碼)
?
飛利浦
HR
FR
EFR
GSM-AMR(Adaptive Multi-Rate)
?
AT&T
ASPEC(Audio Spectral Perceptual Entropy Coding)
PAC(Perceptual Audio Coder)
?
美國杜比公司
Dolby AC-3
?
美國Qualcomm通信公司(即高通)
EVRC(Enhanced Variable Rate Coder,增強型可變速率編碼器)
QCELP(QualComm Code Excited Linear Predictive,受激線性預測編碼)
?
微軟公司
WMA(Windows Media Audio)
?
ITU-T
PCM編碼(原始數字音頻信號流)
ADPCM(自適應差分PCM)
PCMU(G.711U)
PCMA(G.711A)
G.711
G.721
G.722
G.723(低碼率語音編碼算法)
G.723.1(雙速率語音編碼算法)
G.728
G.729
G.729A
?
MPEG
MPEG-1 audio layer 1
MUSICAM(MPEG-1 audio layer 2,即MP2)
MP3(MPEG-1 audio layer 3)
MPEG-2 audio layer
AAC(Advanced Audio Coding,先進音頻編碼)
?
?
-----------------------------------------------------------------------------------------------------------------------------------
Advanced Video Coding 高級視頻編碼
視頻編解碼技術有兩套標準,H.261、國際電聯(ITU-T)的標準H.263、H.263+等;還有ISO 的MPEG標準Mpeg1、Mpeg2、Mpeg4等等。H.264/AVC是兩大組織集合H.263+和Mpeg4的優點聯合推出的最新標準,最具價值的部分無疑是更高的數據壓縮比。在同等的圖像質量條件下,H.264的數據壓縮比能比H.263高2倍,比MPEG-4高1.5倍。
H.264/AVC標準是由ITU-T和ISO/IEC聯合開發的,定位于覆蓋整個視頻應用領域,包括:低碼率的無線應用、標準清晰度和高清晰度的電視廣播應用、Internet上的視頻流應用,傳輸高清晰度的DVD視頻以及應用于數碼相機的高質量視頻應用等等。
ITU-T給這個標準命名為H.264(以前叫做H.26L),而ISO/IEC稱它為MPEG-4 高級視頻編碼(Advanced Video Coding,AVC),并且它將成為MPEG-4標準的第10部分。既然AVC是當前MPEG-4標準的拓展,那么它必然將受益于MPEG-4開發良好的基礎結構(比如系統分層和音頻等)。很明顯,作為MPEG-4高級簡潔框架(Advanced Simple Profile,ASP)的MPEG-4 AVC將會優于當前的MPEG-4視頻壓縮標準,它將主要應用在具有高壓縮率和分層次質量需求的方向。
///
常見的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件其實只能算是一種封裝標準。ASF是流媒體封裝
一個完整的視頻文件是由音頻和視頻2 部分組成的。H264、Xvid等就是視頻編碼格式,MP3、AAC等就是音頻編碼格式。
? ? ? ? ?例如:將一個Xvid視頻編碼文件和一個MP3視頻編碼文件按AVI封裝標準封裝以后,就得到一個AVI后綴的視頻文件,這個就是我們常見的AVI視頻文件了。
? ? ? ? ?由于很多種視頻編碼文件、音頻編碼文件都符合AVI封裝要求,則意味著即使是AVI后綴,也可能里面的具體編碼格式不同。因此出現在一些設備上,同是AVI后綴文件,一些能正常播放,還有一些支付寶線下收單無法播放。
? ? ? ? 同樣的情況也存在于其他容器格式。即使RMVB、WMV等也不例外。部分技術先進的容器還可以同時封裝多個視頻、音頻編碼文件,甚至同時封裝進字幕,如MKV封裝格式。MKV文件可以做到一個文件包括多語種發音、多語種字幕,適合不同人的需要。
? ? ? ? ?例如:MKV文件只要制作的時候同時加入國語和粵語發音的音軌和對應的簡體、繁體字幕,播放的時候,你可以獨立選擇國語或粵語發音,并根據自己需要選擇簡體或繁體字幕,也可以選擇不顯示字幕。相當方便。
? ? ? ? ?因此,視頻轉換需要設置的本質就是:A設置需要的視頻編碼、B設置需要的音頻編碼、C選擇需要的容器封裝。一個完整的視頻轉換設置都至少包括了上面3個步驟。
常用的有Xvid,H264,MPEG1,MPEG2。
Xvid:與RMVB格式差不多的壓縮率,通用性很強,特別是用于家用DVD和便攜式MP4等設備。
?
H264:面前壓縮率最高的視頻壓縮格式,與其他編碼格式相比,同等畫面質量,文件體積最小,遠遠超過RMVB編碼格式,電腦都可以播放,部分便攜式視頻設備也支持,如蘋果播放器。PDA/PPC等設備也可以使用。
?
MPEG1:其實就是VCD編碼格式。
?
MPEG2:DVD編碼格式。比MPEG1強,與MPEG1一樣,已經落后的企業文件加密系統壓縮率都不高,編碼后的文件體積大,多用于希望把網上下載的文件轉換為VCD或DVD碟的時候。
?
常見的組合方式
封裝容器
視頻流編碼格式
音頻流編碼格式
AVI
Xvid
MP3
AVI
Divx
MP3
Matroska(后綴就是MKV)
Xvid
MP3
Matroska(后綴就是MKV)
Xvid
AAC
Matroska(后綴就是MKV)
H264
AAC
MP4
Xvid
MP3
MP4
H264
AAC
3GP
H.263
AAC
?
Xvid(舊稱為XviD)是一個開放源代碼的MPEG-4視頻編解碼器
Divx也是Mpeg-4數字視頻編解碼技術
他們算是mpeg-4的實現
?
事實上,很多封裝容器對音頻編碼和視頻編碼的組合方式放的很開,如AVI還可以使用H264+AAC組合,可以在具體使用中自己體會。尤其是MKV封裝容器,基本無論什么樣的組合都可以!但一般MKV用的最多的就是H264+AAC組合,此組合文件體積最小,清晰度最高。因此網上很多MKV視頻都是高清晰度的。
? ? ? ? ?從上表格可以看出,真正設置的重點在于音頻編碼和視頻編碼,封裝容器多數時候只是關系到最后的文件后綴而已。起碼初學者可以就這么理解。
?
?
?
1) 什么是MP4?聽聞它是一種“容器格式”,那是什么?
容器格式允許你將不同種類的多媒體數據流(多為視頻流和音頻流)合并在一個單一的文件內。
多媒體容器格式,就是我們熟知的AVI(.avi), MPEG(.mpg, .mpeg), Matroska(.mkv, .mka), OGM(.ogm), Quicktime(.mov),或Realmedia(.rm, .rmvb).
? ? ??
MP4是遵循MPEG-4(ISO 14496-14)的官方容器格式定義的廣義文件擴展名。它可以流媒體化并支持眾多多媒體的內容(多音軌(multiple audio)、視頻流(video)、字幕(subtitlestreams)、圖片(pictures)、可變楨率(variable-framerates)、碼率(bitrates)、采樣率(samplerates)等)和高級內容(advanced content)(官方稱之為“Richmedia”(超媒體)或“BIFS”(Binary Format for Scenes/二進制格式場景),類似2D和3D圖形,動畫、用戶界面、類DVD菜單,上述這些AVI搞不定的東西。
?
2) MP4文件的擴展名用什么?
-.mp4:唯一的官方擴展名,支持所有音頻和視頻以及高級內容(或它們的混合)?
?
其他相關的擴展名:
- .m4v:是.mp4文件的錯誤擴展名,由apple提出,支持視頻+音頻,m4v擴展名可以安全地更名為.mp4
- .m4a:是.mp4文件的錯誤擴展名,由apple提出,只支持音頻,m4a擴展名可以安全地更名為.mp4
- .m4p:隨iTunes發售的DRM(Digital Rights Management/數字版權保護技術)產權保護的文件,使用Apple開發的DRM sheme
- .m4e:由.sdp修改擴展名的來的文件,Envivio用其于流媒體播放。
- .m4v, -.mp4v, -.cmp, -.divx, .-xvid, .264:raw的mpeg-4視頻流(并非內含于mp4)。
- .3gp, -.3g2:手機中使用的格式,其中儲存的內容同樣在.mp4未被定義(H.263, AMR(Adaptive Multi Rate/自適應多碼率))。
?
3) 如何創建標準的MP4文件?
簡單的回答:參考doom9的MP4指南或NERO Recode2指南。
?
詳細解答:
1) 為了制作MP4文件,你應該優先使用MPEG-4標準下的音頻/視頻格式:
- MP4視頻格式包括:MPEG-4 SP(Simple Profile/簡單類)/ASP(Advanced Simple Profile/高級簡單類):xvid, divx5, 3ivx,ffmpeg/ffdshow, NeroDigital ASP...及MPEG-4 AVC/H.264:x264, NeroDigital AVC, Apple...還有MPEG-2, MPEG-1(不含Divx3/M$ MPEG4, WM9, RV9或VP6).-doom9的質量比較測評:1 2
- MP4音頻格式包括:Advanced Audio Coding(AAC FAQ):Quicktime/iTunes, Nero, Psytel, FAAC(binary)...(rjamorim的質量比較測評:1 2)和mp3, mp2, mp1, celp(語音), TwinVQ(非常低的碼率), SAOL(midi), ALS(無損)
- MP4字幕/文本格式:MPEG-4時標文本(見Q7)
- MP4圖片格式:JPEG, PNG
?
2) 使用下列的軟件可以將遵循MPEG-4的內容Mux進MP4容器:
- GPAC的MP4box,命令行界面,支持AVC(Advanced Video Coding/進階視頻編碼),packed B-frames(打包B楨),高級內容/BIFS,TTXT和章節(Doom9指南)
- MPEG4IP的mp4creator,命令行界面,能夠混合AVC,但不要用于AVI及(packed) B-frames!
- 3ivx mp4 muxer,dshow濾鏡,可以在GraphEdit中使用,支持使用packed B-frames的avi,但不支持AVC(3ivx 指南)
- mp4UI,操作簡單,軟件基于MPEG4IP,不支持AVC,AVI及(packed) B-frames!(doom9指南)
- VideoLAN Client,支持AVC,不能用于packed B-frames
- ffmpeg,問題多,命令行界面,尤其不能用于AVC,AVI及(packed) B-frames!
- IBM的Toolkit for MPEG-4,含基于Java的XMTBatch和/或AVGen(也是一個簡易的版本)
- dvd2mp4GUI,mp4tool的GUI,可以簡單的將多音軌及字幕(作為高級內容)混合進MP4
- mp4tool/mp4edit,來自于ENST,類似于mp4box。mp4edit是mp4tool命令行軟件的簡易GUI版本
?
3) 下面有一些“all-in-one”的MP4編碼工具:
- Nero Recode2,使用ASP、AVC或AAC來編碼MP4(Doom9指南),字幕是dvd的vob subs(圖形字幕),包含dshow muxer
- Doom9的MeGUI,支持ASP(xvid, libavcodec), AVC(xvid)和AAC(Besweet - Nero)編碼
- HDX4支持ASP和AAC
- Dicas的mpegable X4 live,操作簡單,用dicas的MPEG-4的編碼直接編碼為mp4
- Envivio的4coder支持MPEG-4 AAC, ASP/SP和AVC
?
4) 以下工具可用來編輯MP4文件(如分割、追加合并):
- MP4Box可以按照時間和尺寸分割MP4(AAC, ASP, AVC, TTXT, MPEG-1/2, 專用媒體流),提取部分及合并mp4
- ulead的VideoStudio 8+ MPEG-4插件
- Quicktime/Pro能夠創建(編碼,混合)和編輯(分割、合并)mp4文件,支持MPEG-4 Simple Profile, AAC, AVC
?
4) 有沒有可能將非MPEG-4標準的數據流放進MP4?
可以,雖然我不認為這是個好主意。MPEG-4標準定義了如何將數據流放入MP4的方式。類似于AVI,數據流根據專用的FourCCs方式被放入AVI中;在MP4中,每一個數據流有一個“專用的軌道ID(private track ID)”。記住,沒有一個播放器能夠支持MP4中此類的數據流,只會簡單地把它們忽略。除非你非常明確地要這樣做。
以下的數據流,不遵循MPEG-4標準,但已經能夠被放入MP4中了。
- Ogg Vorbis和Ogg Theora,使用MP4Box
- Ogg Vorbis,使用修訂版的mp4creator
- Apple 的無損音頻(ALAC/ALE - 不兼容MPEG-4 ALS),使用iTunes
- DVD圖形字幕(Vobsubs),使用Nero Recode2
- AMR語音,使用NEC e808/e616手機
唯有等到了將來,我們才能知道此類的非公開數據流能否被廣泛的接受和支持。。。
?
5) 當我從avi中將MPEG-4視頻混合進MP4時,有哪些事項是必須特別注意的?
在做AVIs混合至MP4處理時,有一些潛在的問題。特別是編碼中使用了B楨(b-frames/B-VOPs/bi-directional)。
1)“delay frames(楨延遲)”:由于一些編碼(Xvid, Divx5)仍然使用舊的VFW界面會導致此問題。只有當使用VirtualDub/Mod編碼且用了B楨時,就會自動丟楨。
2)“packed bitstream(打包的數據流)” :因舊有容器格式AVI不支持儲存B楨而產生。在DivX5中會用到PB(只有在一個連續B楨的設定情況下),以及新版本的XviD默認設置是使用PB的(處理時要確認PB選項沒有被勾選),還有使用其他楨來打包B楨(點擊這里了解更多關于B楨的詳細介紹)。
?
3)“ctts”atom(節點):當混合b楨進入MP4中必須寫入的信息。
4)“vol(音量)”:在avi的每個關鍵楨(keyframe)中都要寫入,但現在在MP4中已和影片數據分離開了。
?
現在,只有3ivx mp4 muxer和GPAC的MP4Box可以正確的搞定上述問題。推薦只使用它們進行avi的轉換,特別是那些使用packed bitstreams或者那種你不能確定是否使用了b楨設定/編碼的avi。否則,你很可能不能夠得到100%完全遵循標準的MP4文件!
?
6) transmux(轉換并混合)時是否會對文件內容進行重編碼?
不會,這是個無損的處理過程,只是將媒體流從一個容器搬到MP4里。
?
7) 我怎樣才能將字幕混合進MP4?
這里有三種方法可以實現:
- 相對于MPEG-1/2,MPEG-4標準定義有自己的文本流/字幕標準(基于ISO14496-17的MPEG-4的時標文本)。MP4的字幕格式是基于文本的(不是像DVD字幕那種基于圖形),遵循UTF-8/16標準(含古斯拉夫語、阿拉伯語、中文字符等)。它支持所有的動態效果(滾動、色彩、卡拉ok效果等),且支持附加字體及流媒體化。
MPEG-4 TTXT的制作,已被MP4box和Quicktime支持。
回放時,可以使用Haali的MP4 dshow Parser, Osmo4, Realplayer和Quicktime(僅當放入.3gp文件中)。同樣時VideoLan也支持。
- Nero的Recode2可以用來在MP4中儲存專用數據流(Q4),且可以輕易的、不加修改的將DVD中的圖形字幕(vobsubs)提出并存入MP4中。
回放此類的媒體流,可以使用Nero的濾鏡、Haali的Parser、VideoLan(問題多)和一些硬件支持MP4的DVD播放器。
- 另一個基于MPEG-4標準儲存字幕進MP4的方法是將字幕轉換為XMT/BT文本格式,然后將它們編碼為“高級內容”(BIFS binary格式)存入MP4中。這一方法可適用于任何字幕(使用mp4box或dvd2mp4gui,例如轉換SRT字幕)。
回放這些高級內容,你需要可以支持此類內容的濾鏡/播放器(見Q12)。
?
8) 我如何將章節放入MP4文件中?
章節的存儲也可以使用高級內容實現(例如創建一個目錄菜單),但Nero使用了另一個方法。它使用了MP4中的一個特性:稱為“用戶空間”(user space/udta atom)。它允許在MP4中附加任何你想的東西。(例如,iTunes使用udta atom在mp4中儲存標簽和CD/DVD封面(“coverart”))。
你可以使用Nero Recode2在編碼mp4過程中自動插入章節信息,或者用MP4Box和record2的MP4 directshow muxer filter在已存在的mp4文件中添加章節信息。(例如在GraohEdit中使用此濾鏡)。
關于播放器,如果不能識別在udta中儲存的章節信息,則會簡單的忽略掉。你需要一個可以搞定此特殊章節信息的播放器或濾鏡。(例如,Gabest, Haali, Nero或3ivx)。
?
9) 我如何對MP4文件進行編排創作(例如創建類DVD的菜單)?有沒有例子?
基本上編排創作應“手動”編寫一個文本的語言格式,稱為XMT或bt(基于VRML(Virtual Reality Modeling Language/虛擬現實建模語言),就像我們熟知的Flash),一種能夠把它作為binary格式(稱為BIFS)編碼/編譯入mp4(免費的編碼器為mp4box, mp4tool或XMTBatch)。
現在已經有一些面向MP4編排創作的GUI了,使得這一過程變得很方便。例如IBM, AVIPIX, Envivio, Mindego, iVAST, Digimax或Etri,但都未向大眾開放。
?
所以,如果你想親自編排創作MP4,除了編輯一個BT/XMT的腳本外沒有別的辦法。
感謝GPAC的家伙們,現在已經有了關于這個處理方法的指南(英文版、法文版),這將對你有不小的幫助。
為了使這個過程更簡單,我創作了一個簡單的腳本工具,命名為MP4menu,現在已經支持DVD菜單可以提供的所有特性。你可以按照自己的需求使用(指南)。
?
如果你想看一下實例以了解有什么別的可以放入MP4中,看一下這個小的含視頻的菜單樣本。但是MPEG-4系統還能提供2D和3D的動畫效果(想一下玩具總動員和海底總動員這些影片),看一下這個小的2d動畫樣本(不含視頻流)。
確認你使用的是MPEG-4系統支持的播放器,如GPAC Osmo4 player,來觀看這些樣本。
?
10) 我如何才能在MP4文件中使用可變形重設尺寸(anamorphic resize)?
MPEG-4標準崇尚“多才能”,能夠滿足大眾的各種需求。它提供了三種可能性:
1) 碼流方面:這可能是最具可行性且最大眾化的方法。
使用可以設定PAR(pixel aspect ratio/像素寬高比)的編碼(例如3ivx, ffmpeg/ffvfw, xvid)。然后使用任一種MP4的Muxer工具(例如3ivx mp4 mixer, MP4Box, mp4UI)將得到的AVI Mux至mp4。對于已存在的碼流,你可以使用Moitah的MPEG4 Modifier對MPEG-4 ASP進行修改PAR;使用hhanh的ARChange對AVC進行修改PAR。
下列工具可自動在回放中支持可變形重設尺寸:VideoLan, Mplayer或者帶有3ivx, nero或haali parser加上XviD(xvid decode設置AR為auto), 3ivx(打開“force overlay”), Nero或ffdshow(打開“overlay mixer”)解碼濾鏡的dshow播放器。
2) 容器方面:MP4提供了一種“合成矩陣(Composition Matrix)”,能夠修改AR、畫面旋轉、支持多層數據、回放時將兩條音軌混音(例:將影片的語音和音樂分離)等功能。
Quicktime/Pro提供了很好的合成方法,通過:Movie -> Get Movie Properties -> Video/Sound Track -> Size/Layer/Volume/... ,還能夠正確回放此類經合成編輯的MP4文件。
3) BIFS方面:提供了最廣泛的編排創作的可能(Q9),同樣還能夠修改AR(例:通過改變2d縮放(Transform2D.scale))。你可以使用GPAC的工程軟件:MP4box和Osmo4來創建和回放此類BIFS控制的數據流。
?
11) 有沒有可能在MP4中創建VFR(Variable Framerate/可變幀率)內容?
可以。察看下面的帖子。
?
12) 我如何播放MP4文件?
由于MP4的互用性這一巨大優勢及開源標準(授權免費!)這些特性,現在已有眾多工具可以在不同系統包括Mac, Linux, PocketPC當然還有windows中支持MP4。
?
1) 如果你想用基于dshow的播放器(例如media player classic, bsplayer, zoomplayer或者蹩腳的windows media player)來回放任何此類的媒體文件,首先你需要用到下面兩個東西:
-- 一個分離濾鏡(splitter/parser filter):它能夠在回放時將容器中包含的數據流(音頻流、視頻流、字幕流)分離開。
-- 一個解碼濾鏡(decode filter):它(例如:ffdshow, 3ivx, CoreAAC)能夠將編碼的數據流解碼。
順便說一下,我們在播放AVI時不需要安裝分離濾鏡的唯一原因是windows系統已經默認安裝了這個東西。
?
這里有一些組件包,包含了這些濾鏡:
-- Gabest's MP4 Splitter支持AAC, ASP, AVC, MPEG-1/2音頻(如MP2/MP3)與視頻, 先進TTXT, MP4中的VobSubs和章節, 開源(Gabest的MPC播放器已經內建此濾鏡)
-- Haali's Media Splitter支持MP4中的AAC, ASP, AVC, MPEG-1/2音頻(例:mp2/mp3)和視頻,TTXT,vobsubs和章節,并支持地切換音頻、視頻、字幕,是無限制的,部分開源的,免費的
-- 3ivx支持MP2, MP3, AAC, ASP, 章節但不支持MP4里的AVC!使用ffdshow或CoreAAC這樣的解碼器時請確定“allow unsupport decoders” 選項已勾選
-- Elecard提供了支持AAC, ASP, AVC的MP4 splitter,并附帶ASP/AVC解碼器
-- Nero支持AAC, ASP, AVC, vobsubs和章節(Nero7下只限Nero Showtime!Nero6下僅Nero Showtime支持字幕/章節/多音軌!)
-- HDX4支持MP4中的AAC和ASP
-- EnvivioTV 支持MP4中的高級內容/BIFS(樣本), AAC, ASP和AVC
-- Moonlight提供了支持MP3, AAC, ASP, AVC的MP4 splitter,并附帶ASP/AVC解碼器
-- Dicas的mpegable,支持RTP(Real-Time Transport Protocol/實時傳輸協議)流媒體,AAC, ASP和AMR(.3gp音頻)的解碼
-- Ligos的LSX-MPEG,僅支持Simple Profile視頻,30天預覽版本
?
2) 如果你不能/不想使用基于windows dshow的播放器,你也可以使用下列的播放器來播放MP4:
-- Apple的Quicktime,廣泛使用,支持MPEG-4 SP, AVC和AAC
-- Realnetworks的RealPlayer10,支持MPEG-4 SP + b楨(僅plus版本)和AAC
-- GPAC的Osmo4,開源(GPL),支持BIFS(字幕,用戶互動,類dvd目錄...)和TTXT
-- MPlayer,開源(GPL),支持ASP和AVC,支持眾多系統,象Win, Linux, Mac OS...
-- Videolan,開源(GPL),支持ASP和AVC,多系統支持
-- MPEG4IP的WMP4Player,開源(LGPL(Lesser General Public
License/GNU較寬松公共許可證)/MPL(Mozilla Public License)),支持ASP和AVC
-- xine,開源(GPL),多系統支持
-- TCPMP,用于PalmOS/WindowsCE
-- Philips的Platform4 Player支持PocketPC
-- ENST的Osmo4(基于參考源),支持高級內容/BIFS
-- IBM的M4Play含Toolkit for MPEG-4,基于Java,支持高級內容/BIFS
?
3) 硬件/獨立播放器:由于最流行的MPEG-4 ASP執行者(DivX5/XviD)經常被放入AVI中,那也成為了現在播放器最廣泛支持的格式。同樣是nero的那些家伙,也是為了滿足消費者日益增長的需求,他們嘗試將MP4容器格式能夠被硬件播放器支持,并逐步取得了成功:
支持MP4的硬件播放器如下:
-- Avayon的DXP-1000支持MP4的AAC, ASP, VobSubs和章節
-- elta的8815 MP4支持MP4的AAC, ASP, VobSubs和章節
-- Gowell的AS 602支持MP4的AAC, ASP, VobSubs和章節
-- Kiss的DP-558支持AAC, ASP(不支持QPel(Quarter-Pixel/1/4象素預測)/GMC(Global Motion Compensation/全局動態補償)),支持VobSubs和章節(Sigma Designs EM8560)
-- Packard Bell的DVD-DivX 450 pro支持MP4的AAC, ASP, VobSubs和章節
-- Philips的DVP630/632/642播放器支持MP4的ASP(不支持QPel/1WP GMC), MP3(非AAC)(ESS Vibratto-II)
-- RJTech的RJ 1500DVX II支持MP4的AAC(5.1), MP3, ASP (QPel/1WP GMC/CQM), VobSubs, 章節(ESS Vibratto-II)
-- Siemssen的SCO 5000ND支持MP4的AAC(不支持MP3/MP2),ASP (QPel/1WP GMC), VobSubs, 章節(Zoran Vaddis 776)。?
-- Targa的DR-5200x支持MP4的AAC, ASP, VobSubs和章節
-- Tevion DR 2004,支持MP4的AAC, ASP (QPel/1WP GMC?)和VobSubs。
-- Tevion DVD-4000,最新的固件(firmware)支持MP4的ASP(不支持QPel/1WP GMC?)和MP3(非AAC)(ESS Vibratto-II)
-- Xoro的HSD 415/310播放器支持MP4的AAC, ASP(不支持QPel/1WP GMC?), VobSubs, 章節(ESS Vibratto-II)。?
-- M$的Xbox的Xbox Media Center支持MP4的MP2, MP3, AAC和AVC。
-- Sony的Playstation Portable(PSP)支持MP4的AAC, SP和AVC,保存在記憶棒(Memory Stick)中
-- Apple的iPod支持MP4的AAC,iPod video還支持AVC
-- Sigma Designs的Xcard支持在PC上硬體解碼MPEG-4包括MP4容器
?
13) 如何直播/收看實時(live-)的MP4流媒體?
Apple和MPEG4IP提供了不錯的、免費的工具以將MP4流媒體化:
想要做流媒體服務器,你可以使用Apple's Darwin Streaming Server,這是everwiked與linuxjornal里提供的操作指南。
要直播流媒體你可以使用MPEG4IP的mp4live(僅Linux支持),這是everwiked及MPEG4IP的指南;在Windows系統中,你可以使用MPEGRecorder(看上去像mp4live的一個端口)。
同樣,你可以看一下ViTooKi的工具包(開源的流媒體服務器、播放器和其他相關工具)。
另一個免費、開源的mp4流媒體服務器是Cata提供的。
如果是MAC系統,你可以看一下Live Channel。
?
要播放廣播/直播式的流媒體,你可以用Apple的Quicktime, Real的RealPlayer 10, MPEG4IP的WMP4Player, Dica的mpegable和EnvivioTV(都運作在dshow播放器下)和GPAC的Osmo4(最后兩個也可以支持高級內容/用戶互動)(Envivio的互動演示)。
通過MediaFrame(演示)和IBM(互動演示)的java applets你也可以在不支持安裝播放器情況下來播放流媒體的MP4。
?
流媒體樣本:1 2
?
14) 那里可以找到mp4碼率計算工具?為什么由源AVI制作得到的MP4文件體積要比源AVI文件體積小一點?
MP4需要的overhead的容量遠小于AVI容器(特別是VBR-mp3音軌)。勿需質疑,與AVI容器相反,MP4容器就是為MPEG-4視頻和MP3設計的。
這里有一個計算式,你可以這樣說:AVI中的視頻流文件體積=最終輸出的含視頻音頻的MP4文件體積(像700MB) - MP4的音頻體積 + 3MB。
3ivx在它的主頁上也提供了一個MP4碼率計算工具,但它看上去不是十分精確。
?
15) MP4支持CRC(Cyclic Redundancy Check)/循環冗余碼校驗)/EDC(Error Detection Code/錯誤校驗)或ECC(Error Correction Code/自糾錯)嗎?
不支持。MP4容器本身,乃至MPEG-4標準都不希望支持碼流中的錯誤檢測/糾正(Error Detection/Correction)(它們該用在該用的地方)。
點擊這里,了解更多有關MPEG-4碼流中的差錯恢復(Error Resilience)。
?
16) 有沒有可能得知一個MP4文件是用何種編碼創建的?
是的。對于MPEG-4 ASP的視頻流和MP3音頻流(現在還沒有一個真正的方法來確認是否用了AAC音頻編碼)來說,是可以的。
點擊這里,了解更多。
?
17) MP4是MP3的繼承者嗎?
是,也不是。說它不是,因為MP3是一種特別的音頻格式,而MP4是一種容器格式并非是音頻編碼。說它是的,因為MP4是MPEG-4標準的一部分,MPEG-4標準是MPEG-1/2的繼承者,而mp3亦是它的一部分。
MPEG-4還包括AAC,一種比MP3更好的音頻編碼,也被用于MP4中。
?
18) MP4和MOV/3GP是一樣的嗎?
Apple的MOV容器格式確實與MP4的出發點相同(主要在moov atom方面),但它們之間還是有不少區別的。
從另一方面來說,MP4的出發點是3GP格式(通常用于手機中)的開發。3GP格式普遍用于MP4中,就像用于MOV中一樣。然而,這仍是另一種格式。
?
19) 我還想了解更多關于MP4!在哪里能夠找到更多信息?
在網絡上有不少此類的信息:
MP4的說明文件可在這里找到。MPEG-4系統標準的草案可在這里找到。
有一些關于MP4的文檔:1 2 3。
MPEG Industry Forum或Motion Picture Experts Group(MPEG)的主頁上也有許多信息。
關于MPEG-4標準和MPEG-4系統(非常有技術價值)的FAQs是很有用的。
另外可以在audiocoding wiki找到許多信息(也有許多關于AAC的信息)。
關于MP4的創建, 編譯成果MPEG4IP有不少指南,同樣他們的CVS服務器和everwicked.com上也有指南。?
總結
以上是生活随笔為你收集整理的常见音视频的编码方式和封装格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: librosa实现音频格式转换(单曲批量
- 下一篇: JavaScript看图器 汉字简体繁