2015-11-06 113 views
0

我有一臺沒有顯卡的Ubuntu PC。視頻轉換的AVCONV/FFMPEG硬件加速

我用avconv視頻轉換:

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

我的CPU(英特爾酷睿i7-4770K)處理1.5-2Gb視頻在7-10分鐘。

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 

我想編譯avconv與--enable-vdpau並把視頻卡插入電腦。

這是否允許avconv使用視頻卡進行視頻轉換?

這怎麼能提高視頻轉換的速度(我的意思是我的命令)?

如果你的電腦配有視頻卡,你能幫我做這個測試嗎?

這是WMV的example

回答

0

如果您不想從源代碼編譯任何東西,或使用購電協議進行額外的軟件包,你可以先看看分佈所提供的:

$ 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解碼。當解碼和演示(視頻輸出)通過VDPAU完成時,可以在2個內核上使用80%的CPU負載進行軟件解碼,同時可以播放相同的1080p素材,並且可以播放5-10%的CPU負載。

對於編碼,您可以研究AMD的VCE,英特爾的QuickSync和Nvidia的NVENC(字母順序)。

與此同時,從ffmpeg的:

我有越來越avconv使用VDPAU解碼問題。然後,我偶然發現了這個(推薦閱讀這樣的問題反正): https://trac.ffmpeg.org/wiki/HWAccelIntro

- >似乎VDPAU解碼器支持狀態是:

其實沒錯,但不建議,不應該用過的。

因此,最終答案是 - 一張VDPAU卡在您的情況下可能沒有優勢。