http://blog.csdn.net/haomcu/article/details/7072707
2011
MUX和DEMUX
Mux 是 Multiplex 的縮寫,意為“多路傳輸”,其實(shí)就是“混流”、“封裝”的意思,與“合成”的意思相似就是指把視頻素材和音頻素材封裝到一個(gè)單獨(dú)的文件中。
muxing 是在mux 后面加了 -ing 構(gòu)成的動(dòng)名詞形式。在 muxing 與 demuxing 的整個(gè)過程,都不對(duì)原來的視頻、音頻或字幕重新編碼?;炝鳎ǚ庋b、打包)后的文件,可以通過分離(分解、解包)操作,獲得與原始素材一模一樣的獨(dú)立的視頻、音頻和字幕文件。
視頻的分離與合成,編碼和解碼
對(duì)媒體流的處理分為兩種:“編碼(encoding)”和“解碼(decoding)”。編碼指的是通過一定協(xié)議或規(guī)則把一段聲音或圖像轉(zhuǎn)化成計(jì)算機(jī)數(shù)字文件的過程。而解碼恰恰是編碼的反面——把編碼過的媒體文件重新轉(zhuǎn)化成聲音或圖像。
用來執(zhí)行編碼工作的軟件叫“編碼器”(Coder 或 Encoder);
用來執(zhí)行解碼工作的軟件叫“解碼器”(Decoder)
“編碼器”與“解碼器”合稱“編解碼器”(“Codec”)。
聲音與圖像是兩種不同的媒體,它們分別對(duì)應(yīng)人的兩種不同感官。作為不同的媒體,我們只能用專門針對(duì)聲音的軟件或是專門針對(duì)視頻的軟件去分別分析處理音頻流(Audio Stream)與視頻流(Video Stream)。
用來編碼音頻流的軟件叫作“音頻編碼器”(Audio Encoder)
用來編碼視頻流的軟件叫作“視頻編碼器”(Video Encoder)
用來解碼音頻流的軟件叫作“音頻解碼器”(Audio Decoder)
用來解碼視頻流的軟件叫作“視頻解碼器”(Video Decoder)
音頻流與視頻流的處理必須分別進(jìn)行,即:
“音頻編碼器”編碼出單個(gè)音頻文件,
“視頻編碼器”編碼出單個(gè)視頻文件,
“音頻解碼器”單獨(dú)對(duì)音頻文件進(jìn)行解碼還原,
“視頻解碼器”單獨(dú)對(duì)視頻文件進(jìn)行解碼還原。
既然音頻處理和視頻處理必須單獨(dú)運(yùn)行,那為什么我們平時(shí)看的RMVB、AVI格式的電影都是既包含聲音又包含圖像的單個(gè)文件呢?那是因?yàn)槲覀冊(cè)谕ㄟ^攝像機(jī)獲得單獨(dú)的音頻流和視頻流后不僅對(duì)它們進(jìn)行了“編碼”,還對(duì)它們進(jìn)行了“合成”(Synthesis)。通過合成,音頻與視頻就打包到一起,生成一個(gè)單獨(dú)的文件??梢哉f,所有既有聲音又有圖像的視頻文件,100%都是通過某種合成器(Synthesizer)合成過的。(注意:“合成”與“合并”不同,見最后的參考帖子。)
然而必須知道的是:盡管通過合成器可以把音頻流和視頻流打包成一個(gè)文件,但是正如人的眼睛不可能聽、人的耳朵不可能看,音頻流和視頻流是不可能完全地混雜到一起的,是注定“分離”的。因此,所謂“合成”,只是把音頻流和視頻流用一個(gè)容器文件(Container)封裝起來,其實(shí)里面還是各自獨(dú)立的。我們?cè)诓シ乓曨l文件的時(shí)候總是先調(diào)用分離器(Splitter),將封裝合成的視頻“分離”成獨(dú)立的音頻和視頻碼流,然后才調(diào)用解碼器對(duì)這些獨(dú)立的音頻流和視頻流進(jìn)行解碼輸出。
舉個(gè)例子應(yīng)該比較好懂一些:
比如我們有一個(gè)音頻文件 Sample.mp2 和一個(gè)視頻文件 Sample.m1v,用編碼軟件如小日本4通過 MPEG-1 編碼方式合成為一個(gè)獨(dú)立文件 Sample.mpg,然后把這個(gè).mpg文件拿到媒體播放器里面播放,直接就可以聽到聲音看到畫面。表面上看播放器只是簡單地“播放”了這個(gè)文件,實(shí)際上這個(gè)“播放”包含了更多我們看不到的步驟。這個(gè)步驟是這樣的:
Filter(濾鏡)
什么是HDTV”中已經(jīng)描述了HDTV的幾個(gè)要素,相應(yīng)地,要播放HDTV,就首先要正確地解開封裝,然后進(jìn)行視頻音頻解碼。所以我們需要分離器,視頻解碼器和音頻解碼器,俗稱HDTV的“三件套”,又統(tǒng)稱濾鏡。
一、分離器:
要正確地播放多媒體文件,首先是正確地調(diào)用分離器,把視頻軌和音頻軌分離出來。分離器相應(yīng)分為三大類。
1、MPEG2 TS分離器:
月光(全稱Moonlight-Elecard MPEG2 Demultiplexer),兼容性非常好,是首選的MPEG2分離器。
Gabest(就是Mpeg Splitter),MPC的作者Gabest編寫的分離器。
NVIDIA Transport Demux(nVidia自家的分離器),是PureVideo家族成員之一,只能配合自家族的視頻音頻解碼器,配合N卡比較好。
2、H264的分離器:
常見的有Gabest MP4分離器,就是MP4splitter,也是Gabest編寫的,Halli的分離器和NDigital分離器等。
3、HD-WMV的分離器:
微軟封閉技術(shù),WMP9以上都自帶了,XP用戶都不需要裝。
二、視頻解碼器
各大公司不斷研發(fā)新版本,提升畫質(zhì),改善兼容性,加強(qiáng)顯卡硬件加速作用。
1、MPEG2視頻解碼器:
winDVD的視頻解碼器InterVideo Video Decoder。
PowerDVD的MPEG2視頻解碼器,有CyberLink DTV Video/SP Filter和CyberLink Video/SP Filter
月光視頻解碼器,Moonlight-Elecard MPEG2 Video Decoder為3.X版本和4.0X版本,名為Elecard MPEG-2 Video Decoder。
低端電腦推薦使用Sonic CinemasterVideo,畫質(zhì)一般,強(qiáng)項(xiàng)是能打開硬件加速。
PureVideo家族中的MPEG2視頻解碼器NVIDIA Video Decoder,只能用于N卡6、7系列的顯卡上。
Dscaler5以上所說的PowerDVD、WinDVD、月光、Sonic等的視頻解碼器都可以打開顯卡硬件加速,降低CPU的負(fù)擔(dān)。
2、H264的視頻解碼器:
CoreAVC的H264視頻解碼器CoreAVC DirectShow Video Decoder。
月光的H264解碼器,全稱為Moonlight H264 Video Decoder,ffdshow的解碼器,全稱為ffdshow MPEG-4 Video Decoder,能打開N卡顯卡硬件加速的CyberLink H.264/AVC Decoder(PDVD7)。
3、HD-WMV
只能用上微軟自家的解碼器,N卡6、7系以上能打開加速。
HDTV視頻解碼cpu占用很高,目前最強(qiáng)的cpu也難以完成,而且cpu作為通用處理器,用于視頻解碼則效率很低,所以HDTV播放的關(guān)鍵是顯示卡的解碼加速。視頻解碼器能否支持顯示卡硬件加速,是能否播放HDTV的關(guān)鍵。
三、音頻解碼器:
ffdsshow,月光音頻解碼器、WinDVD的音頻解碼器、PowerDVD的音頻解碼器、AC3Filter音頻解碼器。
如果播放HDTV時(shí)碰到有聲無畫或者有畫無聲,就應(yīng)該自己從解碼器著手,替換一個(gè)試試。
聯(lián)系客服