论文部分内容阅读
转换原理
我们先来了解一下媒体格式转换的流程,当完成了音视频解码之后,软件会将非压缩的RGB及PCM信号传送给视频和音频编码器进行编码压缩,然后通过特定格式的合成器为所需的格式,最后则由文件写滤镜(FiIeWriter)写入到磁盘当中去。
也就是说,用GraphEdit实现媒体转换的前提是源文件能够在Windows中正确地解码播放,而音视频编码器(Encoder)和合成器(Muxer)则是买现媒体转换的必要条件。像AVI、MPEG、MKV、DSM、WMV/ASF等媒体格式,由于存在着DirectShow版本的编码器和合成器,就可以成为转换的目标格式,而RMVB、MOV这类格式则没有,所以无法用GraphEdit转换得到。
媒体格式转换实战
当解码器、编码器和合成器备齐之后,便可以利用GraphEdit进行媒体格式转换了。用GraphEdit进行媒体格式转换的好处存于:任何一种新型的媒体格式,只要它能在Windows系统中播放,不必等待专门的转换工具就可以自己动于把它转换成通用的媒体格式(如AVI或MPEG)。另外,学会了用GraphEdit转换媒体格式,也有助于加深对媒体转换的原理及过程的理解。这里我们有一段RMVB流媒体视频,需要转换成AVI格式,该怎么操作呢?
打开文件:用GraphEdit打开这段RMVB文件,可以在GraphEdit窗口中看到这段视频的解码播放流程的图表。我们只需要在这个流程图表上修改就行了,可以看出RealAudio音频和RealVideo视频在解码之后是分别交给音频表现滤镜Default DirectSound Device及视频表现滤镜Video Renderer,这两个表现滤镜在格式转换当中是用不到,因此,可以将它们选定之后,按Del键删除。
插入编码器、合成器与文件写滤镜:接下来点击工具栏中的“插入一个滤镜到图像中”按钮,会弹出“你想插入哪个滤镜?”对话框。首先插入音频编码器,通常音频编码器都在“Audio Compressors”下,如果要将音频编码成MP3格式,则可以选择“MPEG Layer-3”。如果是将RMVB转换成MPEG格式,那么这里的音频编码器必须使用“Inter Video AudioEncoder”。之后,点击对话框中的“插入滤镜”按钮。
视频编码器一般都放在“Video Compressors”下,转换AVI一般可以选择“DivX 6.5.1 Codec”或“XviDMPEG-4 Codec”,不过,在GraphEdit中无法设置这些编码器的编码码率,转换的效果要想很理想并不容易。如果原文件不大,又有足够的硬盘空间,可以考虑使用无损压缩的Huffyuv v2.1.1编码器,用它转换出来的AVI画质非常理想,得到了高质量的AVI之后,再用AVI转AVI就非常简单了。如果是将RMVB转换成MPEG格式,那么视频编码器也一样要使用“InterVideo Video Encoder”。
接下来还要加入AVI合成器及文件写滤镜,这两个滤镜都放在“DirectShow Filters”下,名称分别是“AVMuxer”和“File Writer”。当然,合成器也可以使用“Matroska Muxer”或“DSM Muxer”,不过,用它们输出的文件格式也相应的变成了MKV和DSM了。在插入“File Writer”文件写滤镜时,会弹出“请选择此滤镜要使用的输出文件”对话框,在对话框中要设置好输出文件的路径及文件名,文件名的后缀则可以根据合成器的类型来设置,这里使用的是AVI合成器,后缀当然就要用AVI了,其它的合成器也以此类推。
建立图表:所有滤镜加入之后,接下来就要把它们连接起来,建立完整的处理图表。将“RealAudio Decoder”的“XFrom Out”端连接“MPEG Layer3”的“Input”端,也就是将RealAudio解码成PCM音频后,再交由MP3编码器编码成MP3格式。视频部分的连接也是一样,然后将音频和视频编码器连接到AVI合成器“AVI Mux”,再将合成器与文件写滤镜连接,这样图表就建立成功了。
最后点击工具栏上的绿色的“播放图像”按钮进行格式转换。不过,转换的进度我们是看不到的,通常只能根据硬盘灯的闪烁情况或播放按钮是否重新变绿来判定转换是否完成。
我们先来了解一下媒体格式转换的流程,当完成了音视频解码之后,软件会将非压缩的RGB及PCM信号传送给视频和音频编码器进行编码压缩,然后通过特定格式的合成器为所需的格式,最后则由文件写滤镜(FiIeWriter)写入到磁盘当中去。
也就是说,用GraphEdit实现媒体转换的前提是源文件能够在Windows中正确地解码播放,而音视频编码器(Encoder)和合成器(Muxer)则是买现媒体转换的必要条件。像AVI、MPEG、MKV、DSM、WMV/ASF等媒体格式,由于存在着DirectShow版本的编码器和合成器,就可以成为转换的目标格式,而RMVB、MOV这类格式则没有,所以无法用GraphEdit转换得到。
媒体格式转换实战
当解码器、编码器和合成器备齐之后,便可以利用GraphEdit进行媒体格式转换了。用GraphEdit进行媒体格式转换的好处存于:任何一种新型的媒体格式,只要它能在Windows系统中播放,不必等待专门的转换工具就可以自己动于把它转换成通用的媒体格式(如AVI或MPEG)。另外,学会了用GraphEdit转换媒体格式,也有助于加深对媒体转换的原理及过程的理解。这里我们有一段RMVB流媒体视频,需要转换成AVI格式,该怎么操作呢?
打开文件:用GraphEdit打开这段RMVB文件,可以在GraphEdit窗口中看到这段视频的解码播放流程的图表。我们只需要在这个流程图表上修改就行了,可以看出RealAudio音频和RealVideo视频在解码之后是分别交给音频表现滤镜Default DirectSound Device及视频表现滤镜Video Renderer,这两个表现滤镜在格式转换当中是用不到,因此,可以将它们选定之后,按Del键删除。
插入编码器、合成器与文件写滤镜:接下来点击工具栏中的“插入一个滤镜到图像中”按钮,会弹出“你想插入哪个滤镜?”对话框。首先插入音频编码器,通常音频编码器都在“Audio Compressors”下,如果要将音频编码成MP3格式,则可以选择“MPEG Layer-3”。如果是将RMVB转换成MPEG格式,那么这里的音频编码器必须使用“Inter Video AudioEncoder”。之后,点击对话框中的“插入滤镜”按钮。
视频编码器一般都放在“Video Compressors”下,转换AVI一般可以选择“DivX 6.5.1 Codec”或“XviDMPEG-4 Codec”,不过,在GraphEdit中无法设置这些编码器的编码码率,转换的效果要想很理想并不容易。如果原文件不大,又有足够的硬盘空间,可以考虑使用无损压缩的Huffyuv v2.1.1编码器,用它转换出来的AVI画质非常理想,得到了高质量的AVI之后,再用AVI转AVI就非常简单了。如果是将RMVB转换成MPEG格式,那么视频编码器也一样要使用“InterVideo Video Encoder”。
接下来还要加入AVI合成器及文件写滤镜,这两个滤镜都放在“DirectShow Filters”下,名称分别是“AVMuxer”和“File Writer”。当然,合成器也可以使用“Matroska Muxer”或“DSM Muxer”,不过,用它们输出的文件格式也相应的变成了MKV和DSM了。在插入“File Writer”文件写滤镜时,会弹出“请选择此滤镜要使用的输出文件”对话框,在对话框中要设置好输出文件的路径及文件名,文件名的后缀则可以根据合成器的类型来设置,这里使用的是AVI合成器,后缀当然就要用AVI了,其它的合成器也以此类推。
建立图表:所有滤镜加入之后,接下来就要把它们连接起来,建立完整的处理图表。将“RealAudio Decoder”的“XFrom Out”端连接“MPEG Layer3”的“Input”端,也就是将RealAudio解码成PCM音频后,再交由MP3编码器编码成MP3格式。视频部分的连接也是一样,然后将音频和视频编码器连接到AVI合成器“AVI Mux”,再将合成器与文件写滤镜连接,这样图表就建立成功了。
最后点击工具栏上的绿色的“播放图像”按钮进行格式转换。不过,转换的进度我们是看不到的,通常只能根据硬盘灯的闪烁情况或播放按钮是否重新变绿来判定转换是否完成。