用于视频转换的AVCONV / FFMPEG硬件加速

时间:2015-11-06 15:56:41

标签: ffmpeg libav avconv

我有一台没有视频卡的Ubuntu PC。

我使用avconv进行视频转换:

avconv -i video.wmv -c:v libx264 -c:a libmp3lame -b:v 1800K video.mp4

我的CPU(英特尔酷睿i7-4770K)在大约7-10分钟内处理1.5-2Gb视频。

avconv github sources我看到了选项

Hardware accelerators:
  --enable-d3d11va         enable D3D11VA code
  --enable-dxva2           enable DXVA2 code
  --enable-vaapi           enable VAAPI code
  --enable-vda             enable VDA code
  --enable-vdpau           enable VDPAU code

我正在考虑使用--enable-vdpau编译avconv并将视频卡放入PC中。

这是否允许avconv使用视频卡进行视频转换?

这怎么能提高视频转换的速度(我的意思是我的命令)?

如果你的电脑上装有视频卡的avconv,你能帮我做这个测试吗?

这是WMV的example

1 个答案:

答案 0 :(得分:0)

如果您不想从源代码编译任何内容或使用PPA获取额外的包,您可以先看看该发行版提供的内容:

$ avconv -codecs | grep vdpau
avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
DEV.L. mpeg1video           MPEG-1 video (decoders: mpeg1video mpeg1video_vdpau )
DEV.L. mpeg2video           MPEG-1 video (decoders: mpeg2video mpegvideo_vdpau )
DEV.L. mpeg4                MPEG-4 part 2 (decoders: mpeg4 mpeg4_vdpau ) (encoders: mpeg4 libxvid )
DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vdpau ) (encoders: libx264 )
D.V.L. vc1                  SMPTE VC-1 (decoders: vc1 vc1_vdpau )
D.V.L. wmv3                 Windows Media Video 9 (decoders: wmv3 wmv3_vdpau )

仔细查看字母“D” - 用于解码,“E”用于编码。如您所见,VDPAU仅用于解码 - 它无法帮助您对视频进行编码。您必须衡量是否:

avconv -vcodec wmv3_vdpau -i video.wmv -c:v libx264 -c:a libmp3lame -b:v 1800K video.mp4

...让您在转换时间方面有任何改进。

根据我的经验,VDPAU非常适合观看视频--Mplayer2和VLC支持它进行显示,我还使用Mplayer2将其用于h264解码。通过软件解码,相同的1080p剪辑可以在2个核心上以80%的CPU负载进行播放,当通过VDPAU完成解码和演示(视频输出)时,可以使用5-10%的CPU负载。

对于编码,你可以研究AMD的VCE,英特尔的QuickSync和Nvidia的NVENC(按字母顺序排列)。

同时,来自ffmpeg:

我在使用avconv使用VDPAU进行解码时遇到了问题。然后我偶然发现了这个问题(推荐阅读此类问题): https://trac.ffmpeg.org/wiki/HWAccelIntro

- >似乎VDPAU解码器支持状态是:

  

实际上是,但已被弃用,不应使用。

所以,最终的答案是 - 带有VDPAU的卡在您的情况下可能没有优势。