【DSP开发】【VS开发】MUX和DEMUX的含义
MUX和DEMUX
Mux 是 Multiplex 的缩写,意为“多路传输”,其实就是“混流”、“封装”的意思,与“合成”的意思相似就是指把视频素材和⾳频素材封装到⼀个单独的⽂件中。
muxing 是在mux 后⾯加了 -ing 构成的动名词形式。
Demux是在 mux 前⾯加了个表⽰否定的 De- 前缀,意思是进⾏与 muxing 相反的“分解复⽤”操作,也就是我们平时说的“分离”⼀个⽂件中的视频部分或是⾳频部分。
同样,也可以在 demux 后⾯加 -ing 构成动名词 demuxing。
意义:
通过 muxing(混流),可以将视频流、⾳频流甚⾄是字幕流捆绑到⼀个单独的⽂件中,作为⼀个信号进⾏传输,等传输完毕,就可以通过 demuxing(分离)将⾥⾯的视频、⾳频或字幕分解出来各⾃进⾏解码和播放。
要点:
在 muxing 与 demuxing 的整个过程,都不对原来的视频、⾳频或字幕重新编码。混流(封装、打包)后的⽂件,可以通过分离(分解、解包)操作,获得与原始素材⼀模⼀样的独⽴的视频、⾳频和字幕⽂件。
视频的分离与合成,编码和解码
对媒体流的处理分为两种:“编码(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⽂件拿到媒体播放器⾥⾯播放,直接就可以听到声⾳看到画⾯。表⾯上看播放器只是简单地“播放”了这个⽂件,实际上这个“播放”包含了更多我们看不到的步骤。这个步骤是这样的:
1. 播放器打开视频源⽂件
2. 播放器调⽤分离器将视频⽂件分解为单独的⾳频流和视频流
3. 播放器调⽤⾳频解码器对⾳频流进⾏解码,同时调⽤视频解码器对视频流进⾏解码
4. 播放器依据同样的时间线将解码后的⾳频流和视频流输出到播放窗守望先锋多大
⼝并使之保持同步。
我们经常听到的名称,实际上就是指的各种分离器或解码器。
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 Filt的四字成语
er
⽉光视频解码器,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时碰到有声⽆画或者有画⽆声,就应该⾃⼰从解码器着⼿,替换⼀个试试。