作为资深玩家,我们已经非常了解NVIDIA的CUDA通用计算功能了。它可以利用显卡的并行计算能力,显著加速一些科学计算、视频编码等运算量大的操作。通过查阅一些资料,我们发现国内的计算机工程应用方面,CUDA技术已经在地震叠前深度偏移、双三次B样条缩放、矿产储量计算、数字图像并行化预处理等领域得到了应用。但是,这些专业领域和我们普通用户来说丝毫没有关系,CUDA技术的民用推广还刚刚起步。
CUDA技术民用化软件大多出现在视频应用方面,比如视频编辑软件MediaShow、视频播放软件Total Media Theater、视频转码软件TMPGEnc 4.0 XPress和Badaboom等。对于视频转码软件而言,CUDA技术的确能够有效缩短视频的转码时间,但这些软件并不一定适合我们。比如NVIDIA推出的Badaboom转码软件,它目前的1.2版本相对以前已经针对国内用户做出了不少的改进。支持中文、支持更多的视频格式等。但这个软件还是存在很多问题,比如封装格式支持很少,仅支持
DVD和蓝光原盘、ts等封装格式,流行的rmvb、mkv、avi等还无法支持;不支持字幕内嵌,转换后手持设备均无法外挂字幕。这些种种原因让CUDA只是看上去很美,落到实处需要更多的软件来支持。
而现在,我们经常使用的一款视频转码软件MediaCoder从0.7.1.4430版本开始支持CUDA加速了。它的好处在于能够支持几乎所有的视频格式、更丰富的设置选择、能够支持字幕等,更适合于国内玩家。接下来,我们就将对MediaCoder进行介绍和测试,一起来体验CUDA加速后能否带来明显的变化。
MediaCoder的中文名称是“影音转码快车”,是一个免费的通用音频/视频批量转码工具。它和“终极解码”类似,将众多来自开源社区的优秀音频视频编解码器和工具整合为一个通用的解决方案,可以将音频、视频文件在各种格式之间进行转换。MediaCoder在安装过程中有很多解码器需要下载,如果没有连接网络的话,将无法正常使用。安装完成后,MediaCoder的界面图如下。
MediaCoder有非常多的选项,各种视频可以在不同的视频格式和封装格式之间进行转换。在软件下方的参数设置区域里,我们需要对视频的格式、转换码流、视频封装格式、音频格式和画面分辨率进行调整。比如,我们要把一部TS封装的1080p高清视频转码到iPhone上观看,就需要把视频格式转换到H.264,并适当降低码率。然后封装格式转换到.mp4,再将分辨率设置为480×320。而在接下来的测试中,我们也将会对视频进行如此格式的转码。
在视频标签的编码器选项后面取消自动选择的选项,然后将编码器设置为CUDA Encoder就可以了。在CUDA的参数选项里,我们可以对视频的规格、级别等进行设置。
CUDA转码的设置选项
其实,Badaboom是一款非常不错的软件,它的界面简单易懂。用户只要选视频格式的播放设备,然后点击一个按键就能转码出适合自己的视频格式。但是它并不适合国内用户,因为它仅支持TS封装视频流,而且不能合成字幕。而MediaCoder更专业,选项非常丰富。
Badaboom使用起来更简单
MediaCoder也有简单的设置过程
不过这样一来就让大众消费者摸不着头脑。其实,MediaCoder也设计了简单的图标式向导,直接选择iPhone或者PSP的选项,就能“生产”出自己需要的视频片段。
接下来,我们将对MediaCoder进行测试,并和Badaboom作一个对比。测试平台主要是
Phenom Ⅱ X4 810+GeForce 9500 GT、Phenom Ⅱ X4 810+GeForce GTX 275、Phenom Ⅱ
X4 955+GeForce GTX 275和AMD Phenom Ⅱ X4 810+Radeon HD 4850的配置。前面三个平台主要考虑不同的显卡和处理器组合,考察对视频转码结果的影响,而解码软件就是Badaboom和
MediaCoder。
我们需要将这段视频转换到iPod touch上观看,设置的视频分辨率为480×320,规格为main,等级为4.1,B帧数为2,码率为1500kbps,转换容器为mp4。刚开始测试时,我们发现Badaboom无法加载这段视频。
Badaboom 1.2版本已经加入了中文界面,但是还是不支持中文目录和中文文件名,仍需要改进。这段视频片段大约有2分多钟,我们首先在Phenom Ⅱ X4 810+GeForce 9500 GT的平台上进行测试。Badaboom转换完花了119秒,平均帧率为40.7fps,是播放速度的1.7倍,转换速度非常快了。而在MediaCoder中,用X264编码器,速度要明显慢一些,整个转换完需要147秒。接下来,我们打开MediaCoder的CUDA编码器,测试结果是151秒,相比X264编码器还慢一点。看来在这个转码操作中MediaCoder没有发挥出CUDA的优势。我们又尝试升级处理器和显卡,MediaCoder的
CUDA编码器和X264之间始终没有拉开差距。后,我们把显卡更换为了ATI RadeonHD 4850,转码时间才延长到164秒。
为什么在这段转码过程中CUDA没有发挥其应有的作用呢?这是因为码率和分辨率设置过小,主要的负载在解码上而不是在编码上。由于编码负载太小,限制了CUDA的发挥,所以我们无法体会到CUDA的好处。
接下来,我们改变了测试方法,转码一段视频到高清播放机上。这次的输出画面改为原始尺寸,码率为20Mbps tow pass,其它设置不变。视频编码负载上来之后,CUDA编码器和X264编码器的性能差别一下就体现出来了。在高端的Phenom Ⅱ X4 955+GeForce GTX 275平台中,
MediaCoder CUDA仅用78秒就完成了转码过程,而MediaCoder X264则用了273秒,速度是处理器编码的3.5倍。而Badaboom的速度就没有MediaCoder CUDA快了,耗时101秒。
其实,MediaCoder软件不仅仅是用到了显卡的通用计算能力,还调用了处理器。我们从三种转码方式的处理器占用率可以看出端倪。MediaCoder X264转码时,处理器占用率达到了99%,处理器处于满负荷状态。这个时候如果要处理其它任务,电脑就力不从心了。
Badaboom转码时,处理器占用率很低,一般在5%~10%左右,主要利用显卡的通用计算能力。而MediaCoder CUDA转码时,除了显卡发挥作用外,处理器也同时被调用。处理器的占用率在80%~90%,虽然很高但是并没有达到满负载。处理器更换为Phenom Ⅱ X4 810后,MediaCoder X264的转码时间受到明显影响,从273秒增加到了331秒。而MediaCoder CUDA的转码时间也略有延长,增加了7秒。只有在Badaboom里,转码时间仍然不变。
我们再进一步把显卡降低到GeForce 9500 GT这个档次后进行测试。MediaCoder X264转码是利用处理器解码和编码,所以成绩几乎没有变化。而用显卡核心工作的MediaCoder CUDA和
Badaboom则受到了非常明显的影响。之前我们使用的GeForce GTX 275显卡有240个流处理器,定位高端,而GeForce 9500 GT仅有32个流处理器,性能差距明显。在MediaCoder CUDA转码过程中,处理器也发挥了很大的作用,所以性能只下降了一倍。只利用到显卡的Badaboom软件的表现就非常差了,甚至低于了MediaCoder X264处理器转码的成绩。
我们很难从肉眼分辨三种不同的转码形式转出的视频画质的高低,可以说几乎没有差别。只是在暗部细节上,MediaCoder稍微丰富一点。而在输出体积上,三种模式的文件压缩率没有明显的差别,容量相差在1MB~3MB之间。所以,不用去担心视频的质量,它主要还是跟码率相关。如果在手持设备上,码率可以低到1500Kbps,如果压缩为720p视频,则保持在10000Kbps以上。
MediaCoder软件的确在支持文件格式、类型上有不错的优势,而Badaboom对国内玩家来说只能用于CUDA的测试,实用性不强。但是MediaCoder的bug也不少,使用过程中问题多多。比如,系统时间不对的话,将无法调用CUDA Encoder;压缩过程中偶尔无法启动进度条和数据监控;载入字幕时间轴容易出错等等问题。我们简单地总结一下两款软件的使用体会,希望国产软件能够在人性化、稳定性上更进一步。
1.支持CUDA加速。
2.界面简洁、简单,适合初级用户使用。
3.稳定性好。
1.支持极少的视频格式和封装格式,几乎没有实用性。
2.收费软件。
3.不支持中文文件名和目录名。
1.为多核处理器做优化,还支持CUDA加速。
2.支持丰富的视频格式和封装格式,调节参数非常多。
3.丰富的视频处理滤镜,包括反交错、裁剪、分辨率调整、亮度色彩调整等。
4.丰富的音频处理滤镜,包括声道映射、重采样、音量调整等。
5.支持字幕嵌入。
6.免费软件。
1.稳定性差,偶尔会出现崩溃的情况。
2.bug较多,经常出现进度条无法启动、裁切器无法启动、转码过程中断等奇怪问题。
3.人性化界面较差。
无论如何,我们终于看到了一款国产的免费软件开始支持CUDA技术了。单从功能上来看,
MediaCoder无疑是非常强大的。而且它还能够很好地发挥多核处理器和NVIDIA显卡的大性能,在转码上的拥有较大的速度优势。它支持的格式众多,真正适合国内玩家使用。不过,我们也希望软件的作者对bug尽快进行完善,增强软件的稳定性,让玩家使用起来的烦恼少一点。