視訊編碼與封裝方式詳解
常見的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等檔案其實只能算是一種封裝標準。
一個完整的視訊檔案是由音訊和視訊2部分組成的。H264、Xvid等就是視訊編碼格式,MP3、AAC等就是音訊編碼格式。
例如:將一個Xvid視訊編碼檔案和一個MP3視訊編碼檔案按AVI封裝標準封裝以後,就得到一個AVI字尾的視訊檔案,這個就是我們常見的AVI視訊檔案了。
由於很多種視訊編碼檔案、音訊編碼檔案都符合AVI封裝要求,則意味著即使是AVI字尾,也可能裡面的具體編碼格式不同。因此出現在一些裝置上,同是AVI字尾檔案,一些能正常播放,還有一些就無法播放。
同樣的情況也存在於其他容器格式。即使RMVB、WMV等也不例外
事實上,很多封裝容器對音訊編碼和視訊編碼的組合方式放的很開,如AVI還可以使用H264+AAC組合,可以在具體使用中自己體會。尤其是MKV封裝容器,基本無論什麼樣的組合都可以!但一般MKV用的最多的就是H264+AAC組合,此組合檔案體積最小,清晰度最高。因此網上很多MKV視訊都是高清晰度的。
因此,視訊轉換需要設定的本質就是:A設定需要的視訊編碼、B設定需要的音訊編碼、C選擇需要的容器封裝。一個完整的視訊轉換設定都至少包括了上面3個步驟。
目前最常見的視訊編碼方式有 MPEG-1/-2 < WMV/7/8 < RM/RMVB < Xvid/Divx < AVC/H.264,視訊壓縮效能和技術先進性也基本表現為上述排列順序(由低到高,不完全準確)。
目前最常見的音訊格式有 Mp3、AC-3、ACC,MP3最廣泛的支援最多,AC-3是杜比公司的技術,ACC是MPEG-4中的音訊標準,ACC是目前比較先進和具有優勢的技術。
視訊編碼標準有兩大系統: MPEG 和ITU-T,如下表
視訊編碼標準
MPEG 標準 由MPEG制定
MPEG-1 | MPEG-2 | (MPEG-3) | MPEG-4 | MPEG-7 | MPEG-21
ITU-T 標準 由VCEG制定
H.261 | (H.262) | H.263 | H.263v2 | H.264
MPEG-1
是MPEG組織制定的第一個視訊和音訊有失真壓縮標準。視訊壓縮演算法於1990年定義完成。1992年底,MPEG-1正式被批准成為國際標準。
這個標準帶來了VCD和MP3
MPEG-2
是MPEG工作組於1994年釋出的視訊和音訊壓縮國際標準。MPEG-2通常用來為廣播訊號提供視訊和音訊編碼,包括衛星電視、有線電視等。MPEG-2經過少量修改後,也成為DVD產品的核心技術。
MPEG-3
是MPEG組織制定的視訊和音訊壓縮標準。本來的目標是為HDTV提供20-40Mbps視訊壓縮技術。在標準制定的過程中,委員會很快發現MPEG-2可以取得類似的效果。隨後,MPEG-3專案停止了。
MPEG-3並非等於MP3。MP3是MPEG-1音訊Layer 3部分。
MPEG-4
是一套用於音訊、視訊資訊的壓縮編碼標準,MPEG-4包含了MPEG-1及MPEG-2的絕大部份功能及其他格式的長處,MPEG-4大部份功能都留待開發者決定採用是否。這意味著整個格式的功能不一定被某個程式所完全函括。因此,這個格式有所謂‘profiles’及‘層次(levels)’,定義了MPEG-4用於某些特定應用的某些功能的集合。
這一標準是目前廣泛應用的主流編碼標準
MPEG-4由一系列的子標準組成,被稱為部,包括以下的部分:
第二部(ISO/IEC 14496-2):視訊:定義了一個對各種視覺資訊(包括視訊、靜止紋理、計算機合成圖形等等)的編解碼器。對視訊部分來說,眾多Profiles中很常用的一種是Advanced Simple Profile (ASP),例如XviD編碼就屬於MPEG-4 Part 2。
第三部(ISO/IEC 14496-3):音訊:定義了一個對各種音訊訊號進行編碼的編解碼器的集合。包括高階音訊編碼(Advanced Audio Coding,縮寫為AAC)的若干變形和其他一些音訊/語音編碼工具。
第十部(ISO/IEC 14496-10):高階視訊編碼或稱高階視訊編碼(Advanced Video Coding,縮寫為AVC):定義了一個視訊編解碼器(codec),AVC和XviD都屬於MPEG-4編碼,但由於AVC屬於MPEG-4 Part 10,在技術特性上比屬於MPEG-4 Part2的XviD要先進。另外從技術上講,它和ITU-T H.264標準是一致的,故全稱為MPEG-4 AVC/H.264。
ITU-T
國際電信聯盟遠端通訊標準化組(英語:ITU Telecommunication Standardization Sector,縮寫ITU-T)是國際電信聯盟管理下的專門制定遠端通訊相關國際標準的組織。
他制定的一系列標準都是H.26X H.261 | (H.262) | H.263 | H.263v2 | H.264
其中H.262和MPEG-2處於系統和水準
H.264 對應於 MPEG-4 L10 的AVC
WMV
微軟公司專有制定的一系列視訊編碼標準,有多個版本,從V9版本開始逐步開始走開放的、標準化的道路
3. 常用視訊編碼方式有Xvid(MPEG4),H264,MPEG1,MPEG2。
Xvid:與RMVB格式差不多的壓縮率,通用性很強,特別是用於家用DVD和行動式MP4等裝置。
Divx:1998年微軟開發了第一個在PC上使用的MPEG-4編碼器,其中的MS MPEG4V3系列的編解碼能力都非常不錯。但微軟卻將這個MS MPEG4V3 的視訊編碼核心封閉在Windows Media流媒體技術上,也就是說僅僅應用於ASF檔案。這招不僅導致ASF不能充分傳播和佔領主流市場,更引起了一幫黑客破解了MPEG4 V3。經過這幫黑客的修改,DivX誕生了。
·DivX格式也就是DVDrip格式,它在採用了MPEG4的壓縮演算法同時又加入了MP3的音訊技術。使用DivX技術對視訊影象進行壓縮,再用MP3或AC3編碼對音訊進行壓縮,然後將視訊、音訊、外掛字幕等檔案合成而形成的視訊格式。最終結果是,使用DivX技術壓縮的視訊檔案具有直逼DVD的質量,而體積只有後者的數分之一。
·XviD:說到XviD,我們不得不提到前面的Divx格式,後者雖然從微軟MPEG4 V3發展而來,但也不是一個完全開源的技術標準。所以原先的部分人馬開始了另外一種途徑,重新發展XviD格式,從名字就看出,XviD是Divx倒過來的寫法。XviD從Divx的基礎上改進而來,具有強大的可調節性,可設定很多選項,針對不同電影進行不同的壓縮方式。更重要的是,XviD是完全開放原始碼,所以有很多人投入到XviD的開發之中,在這點上,XviD格式比起Divx格式有很大優勢。
它們的檔案字尾都是AVI的。
DIVX,XVID:DIVX視訊編碼技術實際就是MPEG4 壓縮技術,它可以說是對上挑戰DVD,對下擠壓SVCD,DIVX-MPEG4對DVD和SVCD造成的威脅不容忽視(有人說它是 DVD 殺手),它由 Microsoft MPEG4v3 修改而來,使用MPEG4 壓縮演算法。據說MPEG4 是美國禁止出口的編碼技術,用它來編碼、壓縮一部DVD只需要兩張CD-ROM!這樣就意味著,你不需要買昂貴的 DVD ROM 也可以得到和它質量差不多的視訊節目了,而這一切只需要你有CD-ROM。播放(解壓縮)MPEG4編碼,對機器的要求也不高,CPU只要是300MHz以上,再配上64MB的記憶體和一個有8MB視訊記憶體的顯示卡就可以流暢地播放了。對播放軟體方面的要求就更寬鬆,你只需要安裝一個500K 大小的MPEG4 編碼驅動後,用Windows自帶的媒體播放器就可以流暢地播放。
XVID與DIVX實際上是同出一源,都是根據MPEG4V3修改而來,不過由於DIVX在版本5之後不在開放原始碼,因此有部分程式設計師將DIVX 3.11改進後成為XVID。
DIVX和XVID的另外一個特點是可以外掛字幕和AC3音訊源,這樣就可以在近似於DVD的畫面質量的基礎上,享受到DVD的音效,同時還可以自己選擇字幕,給了使用者很大的自由度。
AVI,WMV,ASF,DAT,MPG,VOB:這些都是媒體檔案的儲存格式,AVI通常用於DIVX/XVID編碼的檔案的儲存,
MPEG4檔案的特性為,檔案的封裝格式為avi(也即檔名字尾為avi),檔案的視訊格式為MPEG-4 Visual(簡稱MPEG-4 ),視訊編解碼器ID為Xvid或DivX(有時顯示為DX50(DivX 5)).
H264:面前壓縮率最高的視訊壓縮格式,與其他編碼格式相比,同等畫面質量,檔案體積最小,遠遠超過RMVB
編碼格式,電腦都可以播放,部分行動式視訊裝置也支援,如蘋果播放器。PDA/PPC等裝置也可以使用
2、H.261/H.263
①、H.261標準通常稱為p*64,H.261對全色彩、實時傳輸動影象可以達到較高的壓縮比,演算法由幀內壓縮加前後幀間壓縮編碼組合而成,以提供視訊壓縮和解壓縮的快速處理。由於在幀間壓縮演算法中只預測到後1幀,所以在延續時間上比較有優勢,但影象質量難以做到很高的清晰度,無法實現大壓縮比和變速率錄影等。
②、H.263的基本編碼方法與H.261是相同的,均為混合編碼方法,但H.263為適應極低位元速率的傳輸,在編碼的各個環節上作了改進,如以省碼字來提高編碼影象的質量,此外,H.263還吸取了MPEG的雙向運動預測等措施,進一步提高幀間編碼的預測精度,一般說,在低位元速率時,採用H.263只要一半的速率可獲得和H.261相當的影象質量。
MPEG1:其實就是VCD編碼格式。
MPEG-1:制定於1992年,它是針對1.5Mbps以下資料傳輸率的數字儲存媒體運動影象及其伴音編碼而設計的國際標準。也就是我們通常所見到的VCD製作格式。使用MPEG-1的壓縮演算法,可以把一部120分鐘長的電影壓縮到1.2GB左右大小。這種視訊格式的副檔名包括.mpg、.mlv、.mpe、.mpeg及VCD光碟中的.dat檔案等。
MPEG1:技術特點:MPEG-1制定於1992年,可適用於不同頻寬的裝置,如CD-ROM、Video-CD、CD-i。它的目的是把221Mbit/s的NTSC影象壓縮到1.2Mbit/s,壓縮率為200∶1。這是影象壓縮的工業認可標準。它可針對SIF標準解析度(對於NTSC製為352×240;對於PAL製為352×288)的影象進行壓縮,傳輸速率為1.5Mbits/s,每秒播放30幀,具有CD音質,質量級別基本與VHS(廣播級錄影帶)相當
MPEG-1也被用於數字電話網路上的視訊傳輸,如非對稱數字使用者線路(ADSL),視訊點播(VOD),以及教育網路等
MPEG2:DVD編碼格式。比MPEG1強,與MPEG1一樣,已經落後的編碼格式,壓縮率都不高,編碼後的檔案體積大,多用於希望把網上下載的檔案轉換為VCD或DVD碟的時候。
MPEG2:技術特點:MPEG-2制定於1994年,設計目標是高階工業標準的影象質量以及更高的傳輸率。MPEG-2所能提供的傳輸率在3MB-10MB/s間,在NTSC制式下的解析度可達720×486,MPEG-2能夠提供廣播級的視像和CD級的音質。MPEG-2的音訊編碼可提供左右中及兩個環繞聲道,以及一個加重低音聲道和多達七個伴音聲道。MPEG-2的另一特點是,可提供一個較廣範圍的可變壓縮比,以適應不同的畫面質量、儲存容量以及頻寬的要求。
應用範圍:MPEG-2技術就是實現DVD的標準技術,現在DVD播放器也開始在家庭中普及起來了。除了作為DVD的指定標準外,MPEG-2還可用於為廣播、有線電視網、電纜網路以及衛星直播提供廣播級的數字視訊。
MPEG-2:制定於1994年,設計目標為高階工業標準的影象質量以及更高的傳輸率。這種格式主要應用在DVD/SVCD的製作(壓縮)方面,同時在一些HDTV(高清晰電視廣播)和一些高要求視訊編輯、處理上面也有相當的應用。使用MPEG-2的壓縮演算法,可以把一部120分鐘長的電影壓縮到4到8GB的大小。這種視訊格式的副檔名包括.mpg、.mpe、.mpeg、.m2v及DVD光碟上的.vob檔案等。
MPEG4:技術特點:MPEG-4 於1998 年11 月公佈,它不僅是針對一定位元率下的視訊、音訊編碼,更加註重多媒體系統的互動性和靈活性。這個標準主要應用於視像電話、視像電子郵件等,對傳輸速率要求較低,在4800-64000bits/s之間,解析度為176×144。MPEG-4利用很窄的頻寬,通過幀重建技術、資料壓縮,以求用最少的資料獲得最佳的影象質量。
應用範圍:經過這兩年的發展,現在最熱門的應用是利用 MPEG-4 的高壓縮率和高的影象還原質量來把 DVD 裡面的MPEG-2 視訊檔案轉換為體積更小的視訊檔案。經過這樣處理,影象的視訊質量下降不大但體積卻可縮小几倍,可以很方便地用 CD-ROM 來儲存 DVD 上面的節目。另外,MPEG-4在家庭攝影錄影、網路實時影像播放將大有用武之地。
3、MPEG是(運動影象編碼專家組)研發的,是壓縮運動影象及其伴音的視音訊編碼標準,它採用了幀間壓縮,僅儲存連續幀之間有差別的地方 ,從而達到較大的壓縮比。MPEG目前比較常用MPEG—1、MPEG—2和MPEG—4三個版本,以適應於不同頻寬和影象質量的要求。
①、MPEG—1的視訊壓縮演算法依賴於兩個基本技術,一是基於16*16(畫素*行)塊的運動補償,二是基於變換域的壓縮技術來減少空域冗餘度,壓縮比相比M-JPEG要高,對運動不激烈的視訊訊號可獲得較好的影象質量,但當運動激烈時,影象會產生馬賽克現象。 MPEG-1以1.5Mbps的資料率傳輸視音訊訊號,MPEG-1在視訊影象質量方面相當於VHS錄影機的影象質量,視訊錄影的清晰度的彩色模式≥240TVL,兩路立體聲伴音的質量接近CD的聲音質量。 MPEG-1是前後幀多幀預測的壓縮演算法,具有很大的壓縮靈活性,能變速率壓縮視訊,可視不同的錄影環境,設定不同的壓縮質量,從每小時80Mb至400Mb不等,但資料量和頻寬還是比較大。
②、MPEG-2它是獲得更高解析度(720*572)提供廣播級的視音訊編碼標準。MPEG-2作為MPEG-1的相容擴充套件,它支援隔行掃描的視訊格式和許多高階效能包括支援多層次的可調視訊編碼,適合多種質量如多種速率和多種解析度的場合。它適用於運動變化較大,要求影象質量很高的實時影象。對每秒30幀、720*572解析度的視訊訊號進行壓縮,資料率可達3-10Mbps。由於資料量太大,不適合長時間連續錄影的需求。
③、MPEG-4是為行動通訊裝置在Internet網實時傳輸視音訊訊號而制定的低速率、高壓縮比的視音訊編碼標準。MPEG-4標準是面向物件的壓縮方式,不是像MPEG-1和MPEG-2那樣簡單地將影象分為一些像塊,而是根據影象的內容,其中的物件(物體、人物、背景)分離出來,分別進行幀內、幀間編碼,並允許在不同的物件之間靈活分配位元速率,對重要的物件分配較多的位元組,對次要的物件分配較少的位元組,從而大大提高了壓縮比,在較低的位元速率下獲得較好的效果, MPEG-4支援MPEG-1、MPEG-2中大多數功能,提供不同的視訊標準源格式、位元速率、幀頻下矩形圖形影象的有效編碼。
總之,MPEG-4有三個方面的優勢:
①、具有很好的相容性;
②、MPEG-4比其他演算法提供更好的壓縮比,最高達200:1;
③、MPEG-4在提供高壓縮比的同時,對資料的損失很小。所以,mpeg-4的應用能大幅度的降低錄影儲存容量,獲得較高的錄影清晰度,特別適用於長時間實時錄影的需求,同時具備在低頻寬上優良的網路傳輸能力。
RM,RMVB:RM和RMVB是REAL公司出品的一種音視訊編碼格式,同時也是這種格式編碼的檔案的儲存方式,其中RM是恆定位元速率的,而RMVB是可變位元速率的。REAL編碼的特點是在儘可能低的資料率上實現儘可能高的畫面質量,尤其是RMVB,在450K的位元速率的時候就可以實現相當清晰的畫面質量,缺點是音訊質量比較一般,同時畫面細節損耗比較高,尤其是亮度部分,所以RM和RMVB的電影通常會給人畫面比較暗的感覺。
其他音視訊編碼格式:其他比較常見的其他格式有MOV,MP4,H263,H264,WMV-HDTV,MKV,OGG,INDEO CODEC,ACM,WAV,CD等等,因為這些格式或不常見,或不適合網路流分發,所以應用範圍通常比較有限。
WMV和ASF通常是微軟MPEG4演算法的儲存格式
DAT和MPG是MPEG1演算法編碼的檔案的儲存方式,其中DAT主要用於VCD,VOB則是MPEG2演算法編碼的檔案的儲存方式,通常用於DVD。
不同視訊封裝格式有不同的優缺點,總體上說AVI和RM是目前最常見的格式,而AVI由於先天缺陷不利於網路傳輸;m2ts和mkv是先進的下一代標準,今後可能逐步流行。
• AVI (.avi)
是英語Audio Video Interleave(“音訊視訊交織”或譯為“音訊視訊交錯”)的首字母縮寫,由微軟在1992年11月推出的一種多媒體檔案格式,用於對抗蘋果Quicktime的技術。現在所說的AVI多是指一種封裝格式。
它支援很多種編碼方式:Xvid、WM、H.264、MPEG等。
常見的組合有:* (DivX或XviD+MP3).avi,* (H.264+MP3).avi* (WMV9+MP3).avi
• ASF (.asf)
Advanced Systems Format(原名“Advanced Streaming Format”,.asf),微軟的一個與Windows Media Player相關聯的流媒體格式。
他的注意目的是解決AVI格式在流傳輸上的不足。
• WMV (.wmv)
微軟的對應WMV標準的封裝格式
• QuickTime ( .mov)
蘋果的,不用說了
• MPEG (.mpg / .mpeg)
基於MPEG-1/MPEG-2/MPEG-4系列標準的封裝格式
• MP4 (.mp4)
全稱MPEG-4 Part 14,是一種使用MPEG-4的多媒體電腦檔案格式,副檔名為.mp4,以儲存數碼音訊及數碼視訊為主。
• m2ts (.m2ts / .mts )
是一種視訊檔案格式(container)可支援多工的影音流. m2ts架構於MPEG transport stream 以及著名的 BDAV MPEG-2 transport stream.[1][2][3] 這種檔案格式多支援於高清的 Blu-ray Disc 與 AVCHD.
這是最新的MPEG-4架構中的封裝格式,很可能會成為下一代的主流方式
• Matroska (.mkv / .mks / .mka )
Matroska是一種新的多媒體封裝格式,這個封裝格式可把多種不同編碼的視訊及16條或以上不同格式的音訊和語言不同的字幕封裝到一個Matroska Media檔內。它也是其中一種開放原始碼的多媒體封裝格式。
• Ogg
是一個自由且開放標準的容器格式,由Xiph.Org 基金會所維護。Ogg格式並不受到軟體專利的限制,並設計用於有效率地流媒體和處理高品質的數字多媒體。“Ogg”意指一種檔案格式,可以納入各式各樣自由和開放原始碼的編解碼器,包含音效、視訊、文字(像字幕)與元資料的處理。
• RM ( .rm / .rmvb)
Real 公司
適合家用DVD播放的媒體檔案(此DVD需要支援MP4檔案播放功能)
代表含義 設定值
設定音訊流編碼格式 LAME MP3
設定音訊流取樣率 44100Hz
設定音訊流取樣聲道 預設即可
設定音訊流編碼具體方式 ABR
設定音訊流轉換後的聲道 Auto
設定音訊流轉換位元速率 96 kbps或128kbps
設定視訊流具體編碼方式 Bitrate-based
設定視訊流轉換位元速率 400 kbps或500 kbps
設定視訊編碼格式 Xvid
設定封裝容器 AVI
設定轉換後的檔案的解析度 400x-3
設定轉換後的檔案的幀率 24
適合支援大部分PDA、智慧手機播放的媒體檔案,低速CPU機型適用(CPU速度低於400MHz的)
此設定方式一般也適合大多數MP4播放裝置。PDA、智慧手機需要安裝TCPMP才可以更好的支援AVI和MKV格式
代表含義 設定值
設定音訊流編碼格式 LAME MP3
設定音訊流取樣率 44100Hz
設定音訊流取樣聲道 預設即可
設定音訊流編碼具體方式 ABR
設定音訊流轉換後的聲道 Auto
設定音訊流轉換位元速率 96 kbps
設定視訊流具體編碼方式 Bitrate-based
設定視訊流轉換位元速率 320 kbps
設定視訊編碼格式 Xvid
設定封裝容器 AVI
設定轉換後的檔案的解析度 320x-3
設定轉換後的檔案的幀率 24
適合支援大部分PDA、智慧手機播放的媒體檔案,高速CPU適用(CPU速度大於或等於400MHz的)
代表含義 設定值
設定音訊流編碼格式 CT AAC+
設定音訊流取樣率 44100Hz
設定音訊流取樣聲道 預設即可
設定音訊流編碼具體方式 aacplus
設定音訊流轉換後的聲道 Stereo
設定音訊流轉換位元速率 32 kbps
設定視訊流具體編碼方式 Bitrate-based
設定視訊流轉換位元速率 200 kbps
設定視訊編碼格式 H264
設定封裝容器 Matroska
設定轉換後的檔案的解析度 320x-3
設定轉換後的檔案的幀率 24
適合儲存VCD至硬碟的轉換設定
設定位置 代表含義 設定值
設定音訊流編碼格式 CT AAC+
設定音訊流取樣率 44100Hz
設定音訊流取樣聲道 預設即可
設定音訊流編碼具體方式 aacplus
設定音訊流轉換後的聲道 Stereo
設定音訊流轉換位元速率 48 kbps
設定視訊流具體編碼方式 Quality-based
設定視訊流轉換位元速率 95
設定視訊編碼格式 H264
設定封裝容器 Matroska
設定轉換後的檔案的解析度 352x-3
設定轉換後的檔案的幀率 24
適合儲存DVD至硬碟的轉換設定
代表含義 設定值
設定音訊流編碼格式 CT AAC+
設定音訊流取樣率 44100Hz
設定音訊流取樣聲道 預設即可
設定音訊流編碼具體方式 aacplus
設定音訊流轉換後的聲道 Stereo
設定音訊流轉換位元速率 64 kbps
設定視訊流具體編碼方式 Bitrate-based
設定視訊流轉換位元速率 500 kbps或600 kbps
設定視訊編碼格式 H264
設定封裝容器 Matroska
設定轉換後的檔案的解析度 640x-3
設定轉換後的檔案的幀率 24
壓縮,還是不壓縮?這是個問題。常見的MPEG、WMV、RMVB等格式實際上都屬於有失真壓縮,換句話說就是犧牲畫質換取較小的體積。但如果不壓縮,視訊檔案的體積將會十分驚人,一盤60分鐘的DV帶,如果以AVI格式儲存,大約需要11GB空間,儲存和攜帶都非常不便。那為何不試試視訊檔案的無失真壓縮呢?這可不是痴人說夢,實際上無失真壓縮視訊並不複雜,裝上編碼器,幾步就能完成。
一.視訊無失真壓縮三劍客
目前常用的無失真壓縮編碼/解碼器有三種,它們分別是CorePNG、Huffyuv和MSU Lossless Video Codec,三者都是免費軟體,在壓縮比和壓縮速度上可以說是各有千秋,下面筆者會逐一介紹。這些編碼器都是隻有核心,沒有外殼,因此必須通過視訊轉換軟體呼叫,筆者建議使用VirtualDub,這是個免費軟體,可以到 http://www.skycn.com/soft/1998.html 下載。
上述種編碼/解碼器的下載地址如下:
MSU Lossless Video Codec: http://www.ogg.cn:8080/Upload/DownLoad/msu-ls-codec.zip
Huffyuv: http://www.ogg.cn:8080/Upload/DownLoad/huffyuv_220.rar
CorePNG: http://www.ogg.cn:8080/Upload/DownLoad/CorePNG-VFW-v0.8.2.exe
其中MSU Lossless Video Codec和CorePNG都可以直接執行exe可執行檔案安裝,只有Huffyuv,必須在解壓後用右鍵單擊huffyuv.inf檔案,選擇彈出選單中的“安裝”安裝,如圖1所示。
二.實戰無失真壓縮
這些編碼器的呼叫方式完全一致。開啟VirtualDub,執行“檔案”/“開啟視訊檔案”匯入要處理的視訊,這裡筆者使用的是一個9.93MB的AVI視訊檔案,然後選擇“視訊”/“壓縮”開啟如圖2所示的對話方塊,在左邊的列表中我們可以找到剛才安裝的編碼器。下面我們就從MSU Lossless Video Codec開始。
1.MSU Lossless Video Codec
選擇“MSU Lossless Video Codec BETA v0.2.4”,單擊“配置”,開啟如圖3所示的對話方塊,該編碼器的預設設定為“High compression”,軟體會在提高壓縮比的同時儘可能多的保留影象細節,這個設定實際上是有損的,但其視訊質量卻非常高,即使將畫面放大數倍,肉眼也很難分辨出其中的差別。當然,如果你的要求很高,也可以選擇“Low compression”,這樣就可以得到100%的無失真壓縮視訊了,不過得到的視訊檔案體積相對較大,詳細對比大家可以參看表1。
2.Huffyuv
在圖2所示的對話方塊中選擇“uffyuv v2.2.0”,再單擊“配置”,開啟如圖4所示的對話方塊,“YUY2 compression method”下拉列表中的選項對壓縮比的影響最大,其預設設定是“Predict median(best)”,此時的壓縮速度較慢,但壓縮比最高;選擇“Predict left(fastest)”則可大幅度提高壓縮速度,但卻會降低壓縮比,對比情況可參看表2。在“RGB compression medhod”下拉列表中請務必選擇“<-Convert to YUY2”,否則播放時會造成非法操作:(,“Field Threshold”可根據原始檔的水平清晰度設定,最高可設定到768線。其它選項不用管它,單擊“OK”即可設定完成。
3.CorePNG
在圖2所示的對話方塊中選擇“CorePNG VFW Codec v0.8.2”,單擊“配置”,開啟如圖5所示的對話方塊,這裡的設定雖多,但對壓縮比影響最大的是“Compression Level”,其預設設定為“6-Normal”,這是個中庸的設定,另外你也可以選擇“1-Fastest”或“9-Best”,其它選項一般無須更改。不同設定下的壓縮比見表3。
進行完以上設定後,執行“檔案”/“另存為AVI”即可開始壓縮。只要安裝了編碼/解碼器,系統中的任何多媒體播放工具,例如Windows Media Player或者MPC等,以及視訊處理軟體都可以直接開啟這些AVI檔案。
huffyuv - 大名鼎鼎, 不用介紹了, 相當快速的無失真壓縮 codec, 不過似乎停止開發了
下載頁面: http://neuron2.net/www.math.berkele...rg/huffyuv.html
Alparysoft Lossless Codec - Alparysoft 的商業軟體, 如果不註冊右下角就會有 logo, 即便如此, 壓縮比通常會遠高於huffyuv, 速度也不錯
如果您感興趣的話, 下載頁面: http://www.alparysoft.com/prod/compression/index.php
CorePNG - 不瞭解, 看到 doom9 上有人推薦, 所以找來, 壓縮比跟 AlparySoft 的差不多, 可能稍好點, 但速度很慢...
下載頁面: http://corecodec.org/projects/corepng/
最後隆重推薦 ffv1 , FFMpeg Project 下開發的無失真壓縮, 所以很自然的 ffdshow encoder 部分包含有它, 壓縮比最大, 速度也很快, 但多半比 huffyuv 慢, 沒有細看...^^, 而且是 OpenSource 的軟體, 免費, 加上 ffdshow 加入了它很容易找到, ^^
ffmpeg project: http://ffmpeg.sourceforge.net/
ffdshow project: http://sourceforge.net/project/show...ackage_id=59355
使用 ffdshow 包含的 ffv1 請下載 ffdshow-20040725.exe, 安裝後 vfw 選擇視窗會有 ffdshow Video Codec, 在 encoder 部分的下拉選項選擇 FFv1 即可.
下面是些小測試.
訊源1 (bink) 6,912 kb
uncompressed 327,612 kb
Huffyuv 163,630 kb
Alparysoft Lossless 68,276 kb
CorePNG 63,934 kb
FFv1 56,918 kb
huffyuv 不用說了, 其他三個經測試 PSNR 同 uncompressed.avi 比較計算結果都是
Y: PSNR: 1.#INF 1.#INF 1.#INF
U: PSNR: 1.#INF 1.#INF 1.#INF
V: PSNR: 1.#INF 1.#INF 1.#INF
Sum: PSNR: 1.#INF 1.#INF 1.#INF
Minimum Average Maximum
值得信賴 Alpary 的不註冊右下角會有 logo, 所以比較的時候訊源和比較物件都切了 64 畫素, 切掉了編碼後有而訊源中沒有的 logo -_-~! .
儘管如此, 我們有那麼棒的 MPEG-2/MPE-4 的編碼, 或者 Real Codec 等為什麼要巨大的無損編碼? 比如即使是 FFV1 其位元速率都是 DVD 最高位元速率的 2 倍以上.
無損編碼通常用來採集, 極少有人會用其最為最終成品, 而一般都會交給常用的有損編碼的, 所以無損編碼通常只是個intermediate 而以 ^^, 它會很有用處當
1. Input 是個怪胎, 沒有第三方軟體支援, 而自己的編輯/編碼 又很差勁, 比如 bink...(不好意思說它壞話了), bink 其實不差,它的壓縮比很高, 但有時太糊了, 比如 ff8 的 CG, 而且沒有第三方軟體支援, 上了它的賊船就別想下去, 幸好它還支援 vfw, 可以做編碼轉換, 但不支援 XviD 的 2pass, 壓縮出來結果好象也沒有 vdmod 好(?).
2. 比如想要自己做 gameplay, 採集成無損的 avi 再作後期處理, avi 如此常見什麼軟體都支援.
3. 作為 Intermediate, uncompressed avi 太大了... 而且大於 2G/4G 的檔案會不被一些 軟體/檔案系統 支援, 用 FFv1 達到 3-6 倍壓縮率且同樣無損, 可以節省大量硬碟空間, 速度在現在的主流配置上應該也不錯, 何樂而不為 .
4. WinDVR 和 PowerDVR 支援用 MPEG-2 採集, 但很多 TV 採集軟體並不支援 mpeg2 編碼, 如果用 XviD/DivX/RV 第一有損, 第二若開了高階選項速度可能會很慢。 所以不妨用無損編碼, 在這領域 huffyuv 由於其速度很快一直很受歡迎, ffv1 (vlc)速度應該比 huffyuv 慢, 如果機器不錯做 TV 採集也可以試試 ffv1
上面的只作了一次測試, 具體的壓縮率並不是唯一, 更多的 doom9 上的 moogie 曾經做過測試 , ffv1 雖不是每次都最好,不過幾乎每次都進了三甲
繼續玩兒 ff8 cg ...
ps. ff8 ending theme 最後三個 CG, 加在一起 16:07, 用 ffv1 無失真壓縮後才 1.04G, 位元速率 93nn kb/s, 跟 DVD 最高位元速率差不多持平....當然 ff8 CG 其實只有 15 fps, 不然該兩倍於其位元速率的 但也很不錯咯
相關推薦
視訊編碼與封裝方式詳解
ITU-T WMV 常見的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等檔案其實只能算是一種封裝標準。 一個完整的視訊檔案是由音訊和視訊2部分組成的。H264、Xvid等就是視訊編碼格式,MP3、AAC等就是音訊編碼格式。
httpclient介紹與請求方式詳解
流程 mes except ppa toc 工具地址 url地址 禪道 包裝 httpClient工具介紹 HTTP協議可能是現在lntemet上使用得最多、最重要的協議了,越來越多的Java應用程序需要直接通過HTTP協議來訪問網絡資源。雖然在JDK的java.net包
在jquery中ajax提交表單的post與get方式詳解
另附三篇參考文章連結: 在jquery中ajax提交表單有post與get方式,在使用get方式時我們可以直接使用ajax 序列化表單$('#表單ID').serialize();就行了,下面我來介紹兩個提交表單資料的方法。 $get方式提交表單 get() 方法通
FFmpeg,H.264,Directshow,和opencv及視訊編碼與封裝格式
http://www.voidcn.com/blog/yhhyhhyhhyhh/article/p-5769736.html 最近做專案,參考網上的資料,梳理了一下視訊採集,編碼,傳輸,顯示相關知識及常用的視訊處理框架和開源庫(本文有誤的地方請見諒,好多概念
java基本資料型別與封裝型別詳解(int和Integer區別)
int是java提供的8種原始資料型別之一。 Java為每個原始型別提供了封裝類,Integer是java為int提供的封裝類(即Integer是一個java物件,而int只是一個基本資料型別)。int的預設值為0,而Integer的預設值為null,即Integer可以區
Oracle 數據庫啟動與關閉 各種方式詳解整理
歸檔模式 tro 需求 acl 提交 管理操作 edi 存在 datafile 概述 只有具備sysdba和sysoper系統特權的用戶才能啟動和關閉數據庫。 在啟動數據庫之前應該啟動監聽程序,否則就不能利用命令方式來管理數據庫,包括啟動和關閉數據庫。 雖然數據庫正常運行,
【Struts2(二)】Struts2的封裝方法&其他介紹&注入方式詳解
1.2 相關知識點 1.2.1 Struts2的Servlet的API的訪問 在Struts2中,Action並沒有直接和Servlet API進行耦合,也就是說在Struts2的Action中不能直接訪問Servlet API。雖然Struts2中的Action訪問Servl
spark三種清理資料的方式:UDF,自定義函式,spark.sql;Python中的zip()與*zip()函式詳解//及python中的*args和**kwargs
(1)UDF的方式清理資料 import sys reload(sys) sys.setdefaultencoding('utf8') import re import json from pyspark.sql import SparkSession
各種字元編碼方式詳解及由來(ANSI,UNICODE,UTF-8,GB2312,GBK)
一直對字元的各種編碼方式懵懵懂懂,什麼ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS……是不是看的很暈,假如您細細的閱讀本文你一定可以清晰的理解他們。Let's go! 很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀
js編碼方式詳解
得到 jscript 選擇 參數 表達 字符替換 request 常用 用戶 escape、encodeURI 和encodeURIComponent 的區別 escape(), encodeURI()和encodeURIComponent()是在Javascript中用於
Java程式設計師從笨鳥到菜鳥之(六十四)細談Hibernate(十五)HQL與QBC查詢方式詳解
歡迎關注微信賬號:java那些事:csh624366188.每天一篇java相關的文章 java交流工作群1: 77800592(已滿) java交流學生群2:234897635(已滿) java交流工作群3:94507287 java交流工作群4: 272265434 我的郵箱:
mybatis與Spring三種開發方式詳解(二&三)Mapper動態代理開發&Mapper動態代理掃描包形式開發
mybatis與Spring三種開發方式詳解(二)Mapper動態代理開發 之前我們說到傳統的dao層開發,今天我們來談談第二種mybatis與Spring的開發方式,Mapper動態代理開發。 首先這裡上一波@test測試程式碼,大家先看一下mybat
程式設計師考試考點分析與真題詳解視訊教程
程式設計師考試考點分析與真題詳解 在參考和分析計算機技術與軟體專業技術資格(水平)考試歷年試題的基礎上,著重對新版的考試大綱(2009年修訂版)內 容有重點地進行了細化和深化,是此考試中 程式設計師級別的考試輔導用書。內容涵蓋了最新程式設計師考試大綱的所有知識點,書中選取了2004—2008年程式設計師考
Javascript設計模式與開發實踐詳解(二:策略模式) http://www.jianshu.com/p/ef53781f6ef2
的人 思想 ram gis pan pro msg have 改變 上一章我們介紹了單例模式及JavaScript惰性單例模式應用這一次我主要介紹策略模式策略模式是定義一系列的算法,把它們一個個封裝起來,並且讓他們可以互相替換。比方說在現實中很多時候也有很多途徑到達同一個
JS創建對象的幾種方式詳解
演員 sta say object ron 操作 tar obj 構造 Js是一門面向對象的語言,裏面沒有類的思想,所以直接是創建對象,下面介紹幾種創建對象的方法: 1.對象字面量的方法:記住鍵值對格式:{key:value,key :value} 實例: Var
centos/linux alternatives與update-alternatives詳解與軟件版本切換
等等 ava 包括 blank 多個 config etc 兩種模式 版權 update-alternatives是linux系統中專門維護系統命令鏈接符的工具,通過它可以很方便的設置系統默認使用哪個命令、哪個軟件版本,比如,我們在系統中同時安裝了open jdk和
iOS Provisioning Profile(Certificate)與Code Signing詳解
使用 簡析 win8 計算 sta 得到 三方 tair agent 摘自:http://blog.csdn.net/phunxm/article/details/42685597 引言 關於開發證書配置(Certificates & Ident
AJAX 狀態值與狀態碼詳解
文件的 不支持 gho nbsp alt ner image 當前 com 1- AJAX狀態值與狀態碼區別 AJAX狀態值是指,運行AJAX所經歷過的幾種狀態,無論訪問是否成功都將響應的步驟,可以理解成為AJAX運行步驟。如:正在發送,正在響應等,由AJAX對象與服務器交
spring AOP解析之註解方式詳解
parser 分享 pro asp mes aop log space spec 命名空間處理器是AopNamespaceHandler,我們可以看到這裏註冊了幾個解析器,第一個我們知道是xml形式的解析,接下來我們看AspectJAutoProxyBeanDefiniti
js 程序執行與順序實現詳解
操作系統 def back 變量 line 順序實現 down strong 瀏覽器 函數的聲明和調用 JavaScript是一種描述型腳本語言,由瀏覽器進行動態的解析與執行。函數的定義方式大體有以下兩種,瀏覽器對於不同的方式有不同的解析順序。 代碼如下: //“定義式”