转码技术对比

一直很苦恼。

我总有一个习惯,当我做视频转码服务器的时候,原本本着开发周期以及成本等问题,已经选择了FFMPEG转码的方案。

在开发过程中,突然想到曾经看到过CUBA这几个字。于是,我立马开始百度(谷歌又被墙了),看到暴风解码就集成了CUBA转码技术,也看到了不要脸闭源的MediaCoder,从一系列对比数据看出,使用GPU转码确实能比CPU转码快很多,只是质量上稍差。其实看到这就已经不错了。

但我手贱,又开始查询CUBA转码有哪些缺点,有哪些限制,我们本身的平台能否满足。看着看着,我又看到一个词SNB,转身又去搜索相关的技术,原来intel在Sandy Bridge中引入了Quick Sync技术,该技术是一项硬件加速视频转码技术,速度甚至超过了最好的GPU加速方案,而且无需消耗CPU资源。

我又心动了,转身开始查询Quick Sync相关优缺点、开发支持等等。

于是一个小时过去了,我原本的开发任务又要延期一个小时,再加上各种会议。。。这种习惯又能给我带来好处:知识面爆棚,经常能拿出最优的方案。好吧,继续苦恼吧,反正没有什么事情是完美的。

言归正传。

目前市面上常见的转码技术有这么几种:FFMPEG(或x264)、CUDA、Quick Sync。从如下几个参数来对比这三种技术吧:

1、 通用性: FFMPEG(X264)     >      CUDA        >  Quick Sync

2、 速度    : Quick Sync           >      CUDA        >  FFMPEG(X264)

3、 质量    : FFMPEG(X264)     >   Quick Sync   >  CUDA

具体参数我无法给出,因为我没有亲测。

总结下吧,目前大多数的转码服务器其实用的都是FFMPEG方案,为什么呢,GPU比CPU快很多。但是FFMPEG是非常成熟的方案,基本不会有什么太大的问题,所以很多公司,比如酷狗、快播还有很多。。。他们都不愿花太多精力去开发CUDA和Quick sync方案,因为再贵的CPU能有多贵?

刚刚说的是服务器产品,对于个人产品而言,比如暴风转码,那就不一样了,你不可能告诉用户换CPU吧,所以暴风才基于CUDA开发了相应的转码技术。

为嘛很少人开发Quick Sync呢?才推出嘛,而且intel也才于去年推出 intel media sdk,另外还有一款开源转码程序HandBrake,老外在这方面比MediaCoder国人靠谱多了。

下次我开发桌面端转码产品时,思路应该是这样的,首先推出Quick sync和FFMPEG两种转码方式的集合,如果发现大多数用户都没有intel芯片的话,考虑下cuda技术。

本文出自 商显技术博客,转载时请注明出处及相应链接。

本文永久链接: http://www.uchar.cn/?p=242

posted on 2014-07-10 23:36  richardor  阅读(1188)  评论(0)    收藏  举报

导航