【DSP开发】【VS开发】MUX和DEMUX的含义
MUX和DEMUX
Mux 是 Multiplex 的縮寫,意為“多路傳輸”,其實就是“混流”、“封裝”的意思,與“合成”的意思相似就是指把視頻素材和音頻素材封裝到一個單獨的文件中。
muxing 是在mux 后面加了 -ing 構成的動名詞形式。Demux是在 mux 前面加了個表示否定的 De- 前綴,意思是進行與 muxing 相反的“分解復用”操作,也就是我們平時說的“分離”一個文件中的視頻部分或是音頻部分。
同樣,也可以在 demux 后面加 -ing 構成動名詞 demuxing。
意義:
通過 muxing(混流),可以將視頻流、音頻流甚至是字幕流捆綁到一個單獨的文件中,作為一個信號進行傳輸,等傳輸完畢,就可以通過 demuxing(分離) 將里面的視頻、音頻或字幕分解出來各自進行解碼和播放。
要點:
在 muxing 與 demuxing 的整個過程,都不對原來的視頻、音頻或字幕重新編碼?;炝?#xff08;封裝、打包)后的文件,可以通過分離(分解、解包)操作,獲得與原始素材一模一樣的獨立的視頻、音頻和字幕文件。
視頻的分離與合成,編碼和解碼
對媒體流的處理分為兩種:“編碼(encoding)”和“解碼(decoding)”。編碼指的是通過一定協議或規則把一段聲音或圖像轉化成計算機數字文件的過程。而解碼恰恰是編碼的反面——把編碼過的媒體文件重新轉化成聲音或圖像。
用來執行編碼工作的軟件叫“編碼器”(Coder 或 Encoder);
用來執行解碼工作的軟件叫“解碼器”(Decoder)
“編碼器”與“解碼器”合稱“編解碼器”(“Codec”)。
聲音與圖像是兩種不同的媒體,它們分別對應人的兩種不同感官。作為不同的媒體,我們只能用專門針對聲音的軟件或是專門針對視頻的軟件去分別分析處理音頻流(Audio Stream)與視頻流(Video Stream)。
用來編碼音頻流的軟件叫作“音頻編碼器”(Audio Encoder)
用來編碼視頻流的軟件叫作“視頻編碼器”(Video Encoder)
用來解碼音頻流的軟件叫作“音頻解碼器”(Audio Decoder)
用來解碼視頻流的軟件叫作“視頻解碼器”(Video Decoder)
音頻流與視頻流的處理必須分別進行,即:
“音頻編碼器”編碼出單個音頻文件,
“視頻編碼器”編碼出單個視頻文件,
“音頻解碼器”單獨對音頻文件進行解碼還原,
“視頻解碼器”單獨對視頻文件進行解碼還原。
既然音頻處理和視頻處理必須單獨運行,那為什么我們平時看的RMVB、AVI格式的電影都是既包含聲音又包含圖像的單個文件呢?那是因為我們在通過攝像機獲得單獨的音頻流和視頻流后不僅對它們進行了“編碼”,還對它們進行了“合成”(Synthesis)。通過合成,音頻與視頻就打包到一起,生成一個單獨的文件。可以說,所有既有聲音又有圖像的視頻文件,100%都是通過某種合成器(Synthesizer)合成過的。(注意:“合成”與“合并”不同,見最后的參考帖子。)
然而必須知道的是:盡管通過合成器可以把音頻流和視頻流打包成一個文件,但是正如人的眼睛不可能聽、人的耳朵不可能看,音頻流和視頻流是不可能完全地混雜到一起的,是注定“分離”的。因此,所謂“合成”,只是把音頻流和視頻流用一個容器文件(Container)封裝起來,其實里面還是各自獨立的。我們在播放視頻文件的時候總是先調用分離器(Splitter),將封裝合成的視頻“分離”成獨立的音頻和視頻碼流,然后才調用解碼器對這些獨立的音頻流和視頻流進行解碼輸出。
舉個例子應該比較好懂一些:
比如我們有一個音頻文件 Sample.mp2 和一個視頻文件 Sample.m1v,用編碼軟件如小日本4通過 MPEG-1 編碼方式合成為一個獨立文件 Sample.mpg,然后把這個.mpg文件拿到媒體播放器里面播放,直接就可以聽到聲音看到畫面。表面上看播放器只是簡單地“播放”了這個文件,實際上這個“播放”包含了更多我們看不到的步驟。這個步驟是這樣的:
- 播放器打開視頻源文件
- 播放器調用分離器將視頻文件分解為單獨的音頻流和視頻流
- 播放器調用音頻解碼器對音頻流進行解碼,同時調用視頻解碼器對視頻流進行解碼
- 播放器依據同樣的時間線將解碼后的音頻流和視頻流輸出到播放窗口并使之保持同步。
我們經常聽到濾鏡(Filter)的名稱,實際上就是指的各種分離器或解碼器。
Filter(濾鏡)
什么是HDTV”中已經描述了HDTV的幾個要素,相應地,要播放HDTV,就首先要正確地解開封裝,然后進行視頻音頻解碼。所以我們需要分離器,視頻解碼器和音頻解碼器,俗稱HDTV的“三件套”,又統稱濾鏡。
一、分離器:
要正確地播放多媒體文件,首先是正確地調用分離器,把視頻軌和音頻軌分離出來。分離器相應分為三大類。
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的分離器:
微軟封閉技術,WMP9以上都自帶了,XP用戶都不需要裝。
二、視頻解碼器
各大公司不斷研發新版本,提升畫質,改善兼容性,加強顯卡硬件加速作用。
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,畫質一般,強項是能打開硬件加速。
PureVideo家族中的MPEG2視頻解碼器NVIDIA Video Decoder,只能用于N卡6、7系列的顯卡上。
Dscaler5以上所說的PowerDVD、WinDVD、月光、Sonic等的視頻解碼器都可以打開顯卡硬件加速,降低CPU的負擔。
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占用很高,目前最強的cpu也難以完成,而且cpu作為通用處理器,用于視頻解碼則效率很低,所以HDTV播放的關鍵是顯示卡的解碼加速。視頻解碼器能否支持顯示卡硬件加速,是能否播放HDTV的關鍵。
三、音頻解碼器:
ffdsshow,月光音頻解碼器、WinDVD的音頻解碼器、PowerDVD的音頻解碼器、AC3Filter音頻解碼器。
如果播放HDTV時碰到有聲無畫或者有畫無聲,就應該自己從解碼器著手,替換一個試試。
轉載于:https://www.cnblogs.com/huty/p/8518496.html
總結
以上是生活随笔為你收集整理的【DSP开发】【VS开发】MUX和DEMUX的含义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uniapp手机验证码功能实现
- 下一篇: python实训小队项目总结