[FFmpeg-user] hardware acceleration for h264 decoding

Wu-bin Zhen vvubin at gmail.com
Tue Feb 5 23:23:54 CET 2013


Hello ffmpeg,

I was trying to compile ffmpeg for both Intel and nVidia GPUs. In the
configuration result as below, I can see both libva and libvdpau are
enabled. I am confused because "h264_vdpau" exists in both "decoders" and
"hwaccels" sections, but "h264_vaapi" only exists in the "hwaccels"
section. Intel GPU machine and nVidia GPU machine are showing the same
result. I wonder if it is normal for vaapi, and hw acceleration will be
activated when there is an Intel GPU.

My another question is whether vdpau and vaapi would be helpful without
"displaying". In other words, I hope that ffmpeg could use vdpau/vaapi to
make transcoding faster, at least for the decoding part. But, I googled
that someone says "vdpau and vaapi are useful for decoding when you want to
display that decoded content. It's not a usable API, eg for decoding video
as a step for subsequently re-encoding it"(
http://ffmpeg-users.933282.n4.nabble.com/how-to-enable-hardware-acceleration-in-ffmpeg-td4438476.html),
so just want to make sure if it is true.

Any advise will be appreciated.
-----
> ./configuration
install prefix            /usr/local
source path               .
C compiler                gcc
ARCH                      x86 (generic)
big-endian                no
runtime cpu detection     yes
yasm                      yes
MMX enabled               yes
MMXEXT enabled            yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
AVX enabled               yes
FMA4 enabled              yes
CMOV enabled              yes
CMOV is fast              yes
EBX available             yes
EBP available             yes
debug symbols             yes
strip symbols             yes
optimize for size         no
optimizations             yes
static                    yes
shared                    no
postprocessing support    no
new filter support        yes
network support           yes
threading support         pthreads
safe bitstream reader     yes
SDL support               yes
libdxva2 enabled          no
libva enabled             yes
libvdpau enabled          yes
AVISynth enabled          no
frei0r enabled            no
gnutls enabled            no
libaacplus enabled        no
libass enabled            no
libcaca enabled           no
libcdio support           no
libcelt enabled           no
libdc1394 support         no
libfaac enabled           no
libfdk-aac enabled        no
libgsm enabled            no
libiec61883 support       no
libilbc enabled           no
libmodplug enabled        no
libmp3lame enabled        no
libnut enabled            no
libopencore-amrnb support no
libopencore-amrwb support no
libopencv support         no
libopenjpeg enabled       no
libopus enabled           no
libpulse enabled          no
librtmp enabled           no
libschroedinger enabled   no
libsoxr enabled           no
libspeex enabled          no
libstagefright-h264 enabled    no
libtheora enabled         no
libtwolame enabled        no
libutvideo enabled        no
libv4l2 enabled           no
libvo-aacenc support      no
libvo-amrwbenc support    no
libvorbis enabled         no
libvpx enabled            no
libx264 enabled           no
libxavs enabled           no
libxvid enabled           no
openal enabled            no
openssl enabled           no
zlib enabled              yes
bzlib enabled             yes
texi2html enabled         no
perl enabled              yes
pod2man enabled           yes
makeinfo enabled          no

Enabled decoders:
aac c93 indeo2
aac_latm cavs indeo3
aasc cdgraphics indeo4
ac3 cdxl indeo5
adpcm_4xm cinepak interplay_dpcm
adpcm_adx cljr interplay_video
adpcm_afc cllc jacosub
adpcm_ct comfortnoise jpeg2000
adpcm_ea cook jpegls
adpcm_ea_maxis_xa cpia jv
adpcm_ea_r1 cscd kgv1
adpcm_ea_r2 cyuv kmvc
adpcm_ea_r3 dca lagarith
adpcm_ea_xas dfa loco
adpcm_g722 dirac mace3
adpcm_g726 dnxhd mace6
adpcm_ima_amv dpx mdec
adpcm_ima_apc dsicinaudio microdvd
adpcm_ima_dk3 dsicinvideo mimic
adpcm_ima_dk4 dvbsub mjpeg
adpcm_ima_ea_eacs dvdsub mjpegb
adpcm_ima_ea_sead dvvideo mlp
adpcm_ima_iss dxa mmvideo
adpcm_ima_oki dxtory motionpixels
adpcm_ima_qt eac3 movtext
adpcm_ima_smjpeg eacmv mp1
adpcm_ima_wav eamad mp1float
adpcm_ima_ws eatgq mp2
adpcm_ms eatgv mp2float
adpcm_sbpro_2 eatqi mp3
adpcm_sbpro_3 eightbps mp3adu
adpcm_sbpro_4 eightsvx_exp mp3adufloat
adpcm_swf eightsvx_fib mp3float
adpcm_thp escape124 mp3on4
adpcm_xa escape130 mp3on4float
adpcm_yamaha evrc mpc7
alac exr mpc8
als ffv1 mpeg1_vdpau
amrnb ffvhuff mpeg1video
amrwb ffwavesynth mpeg2video
amv flac mpeg4
anm flashsv mpeg4_vdpau
ansi flashsv2 mpeg_vdpau
ape flic mpegvideo
ass flv mpl2
asv1 fourxm msa1
asv2 fraps msmpeg4v1
atrac1 frwu msmpeg4v2
atrac3 g723_1 msmpeg4v3
aura g729 msrle
aura2 gif mss1
avrn gsm mss2
avrp gsm_ms msvideo1
avs h261 mszh
avui h263 mts2
ayuv h263i mvc1
bethsoftvid h263p mvc2
bfi h264 mxpeg
bink h264_vdpau nellymoser
binkaudio_dct huffyuv nuv
binkaudio_rdft iac paf_audio
bintext idcin paf_video
bmp idf pam
bmv_audio iff_byterun1 pbm
bmv_video iff_ilbm pcm_alaw
brender_pix imc pcm_bluray
pcm_dvd roq v408
pcm_f32be roq_dpcm v410
pcm_f32le rpza vb
pcm_f64be rv10 vble
pcm_f64le rv20 vc1
pcm_lxf rv30 vc1_vdpau
pcm_mulaw rv40 vc1image
pcm_s16be s302m vcr1
pcm_s16be_planar sami vima
pcm_s16le sanm vmdaudio
pcm_s16le_planar sgi vmdvideo
pcm_s24be sgirle vmnc
pcm_s24daud shorten vorbis
pcm_s24le sipr vp3
pcm_s24le_planar smackaud vp5
pcm_s32be smacker vp6
pcm_s32le smc vp6a
pcm_s32le_planar snow vp6f
pcm_s8 sol_dpcm vp8
pcm_s8_planar sonic vplayer
pcm_u16be sp5x vqa
pcm_u16le srt wavpack
pcm_u24be subrip webvtt
pcm_u24le subviewer wmalossless
pcm_u32be subviewer1 wmapro
pcm_u32le sunrast wmav1
pcm_u8 svq1 wmav2
pcm_zork svq3 wmavoice
pcx tak wmv1
pgm targa wmv2
pgmyuv targa_y216 wmv3
pgssub text wmv3_vdpau
pictor theora wmv3image
pjs thp wnv1
png tiertexseqvideo ws_snd1
ppm tiff xan_dpcm
prores tmv xan_wc3
prores_lgpl truehd xan_wc4
ptx truemotion1 xbin
qcelp truemotion2 xbm
qdm2 truespeech xface
qdraw tscc xl
qpeg tscc2 xsub
qtrle tta xwd
r10k twinvq y41p
r210 txd yop
ra_144 ulti yuv4
ra_288 utvideo zero12v
ralf v210 zerocodec
rawvideo v210x zlib
realtext v308 zmbv
rl2

Enabled encoders:
a64multi jpeg2000 pgmyuv
a64multi5 jpegls png
aac ljpeg ppm
ac3 mjpeg prores
ac3_fixed movtext prores_anatoliy
adpcm_adx mp2 prores_kostya
adpcm_g722 mpeg1video qtrle
adpcm_g726 mpeg2video r10k
adpcm_ima_qt mpeg4 r210
adpcm_ima_wav msmpeg4v2 ra_144
adpcm_ms msmpeg4v3 rawvideo
adpcm_swf msvideo1 roq
adpcm_yamaha nellymoser roq_dpcm
alac pam rv10
amv pbm rv20
ass pcm_alaw sgi
asv1 pcm_f32be snow
asv2 pcm_f32le sonic
avrp pcm_f64be sonic_ls
avui pcm_f64le srt
ayuv pcm_mulaw subrip
bmp pcm_s16be sunrast
cljr pcm_s16be_planar svq1
comfortnoise pcm_s16le targa
dca pcm_s16le_planar tiff
dnxhd pcm_s24be utvideo
dpx pcm_s24daud v210
dvbsub pcm_s24le v308
dvdsub pcm_s24le_planar v408
dvvideo pcm_s32be v410
eac3 pcm_s32le vorbis
ffv1 pcm_s32le_planar wmav1
ffvhuff pcm_s8 wmav2
flac pcm_s8_planar wmv1
flashsv pcm_u16be wmv2
flashsv2 pcm_u16le xbm
flv pcm_u24be xface
g723_1 pcm_u24le xsub
gif pcm_u32be xwd
h261 pcm_u32le y41p
h263 pcm_u8 yuv4
h263p pcx zlib
huffyuv pgm zmbv

Enabled hwaccels:
h263_vaapi mpeg2_vaapi vc1_vaapi
h263_vdpau mpeg2_vdpau vc1_vdpau
h264_vaapi mpeg4_vaapi wmv3_vaapi
h264_vdpau mpeg4_vdpau wmv3_vdpau
mpeg1_vdpau

Enabled parsers:
aac dvdsub mpegvideo
aac_latm flac png
ac3 gsm pnm
adx h261 rv30
bmp h263 rv40
cavsvideo h264 tak
cook mjpeg vc1
dca mlp vorbis
dirac mpeg4video vp3
dnxhd mpegaudio vp8
dvbsub

Enabled demuxers:
aac idf pcm_u24le
ac3 iff pcm_u32be
act ilbc pcm_u32le
adf image2 pcm_u8
adx image2pipe pjs
aea ingenient pmp
afc ipmovie pva
aiff ircam pvf
amr iss qcp
anm iv8 r3d
apc ivf rawvideo
ape jacosub realtext
aqtitle jv rl2
asf latm rm
ass lmlm4 roq
ast loas rpl
au lvf rso
avi lxf rtp
avr m4v rtsp
avs matroska sami
bethsoftvid mgsts sap
bfi microdvd sbg
bink mjpeg sdp
bintext mlp segafilm
bit mm shorten
bmv mmf siff
brstm mov smacker
c93 mp3 smjpeg
caf mpc smush
cavsvideo mpc8 sol
cdg mpegps sox
cdxl mpegts spdif
concat mpegtsraw srt
daud mpegvideo str
dfa mpl2 subviewer
dirac mpsub subviewer1
dnxhd msnwc_tcp swf
dsicin mtv tak
dts mv tedcaptions
dtshd mvi thp
dv mxf tiertexseq
dxa mxg tmv
ea nc truehd
ea_cdata nistsphere tta
eac3 nsv tty
epaf nut txd
ffm nuv vc1
ffmetadata ogg vc1t
filmstrip oma vivo
flac paf vmd
flic pcm_alaw vobsub
flv pcm_f32be voc
fourxm pcm_f32le vplayer
frm pcm_f64be vqf
g722 pcm_f64le w64
g723_1 pcm_mulaw wav
g729 pcm_s16be wc3
gif pcm_s16le webvtt
gsm pcm_s24be wsaud
gxf pcm_s24le wsvqa
h261 pcm_s32be wtv
h263 pcm_s32le wv
h264 pcm_s8 xa
hls pcm_u16be xbin
ico pcm_u16le xmv
idcin pcm_u24be xwma
yop yuv4mpegpipe

Enabled muxers:
a64 image2pipe pcm_s16be
ac3 ipod pcm_s16le
adts ircam pcm_s24be
adx ismv pcm_s24le
aiff ivf pcm_s32be
amr jacosub pcm_s32le
asf latm pcm_s8
asf_stream m4v pcm_u16be
ass matroska pcm_u16le
ast matroska_audio pcm_u24be
au md5 pcm_u24le
avi microdvd pcm_u32be
avm2 mjpeg pcm_u32le
bit mkvtimestamp_v2 pcm_u8
caf mlp psp
cavsvideo mmf rawvideo
crc mov rm
daud mp2 roq
dirac mp3 rso
dnxhd mp4 rtp
dts mpeg1system rtsp
dv mpeg1vcd sap
eac3 mpeg1video segment
f4v mpeg2dvd smjpeg
ffm mpeg2svcd smoothstreaming
ffmetadata mpeg2video sox
filmstrip mpeg2vob spdif
flac mpegts srt
flv mpjpeg stream_segment
framecrc mxf swf
framemd5 mxf_d10 tg2
g722 null tgp
g723_1 nut truehd
gif ogg vc1t
gxf oma voc
h261 pcm_alaw w64
h263 pcm_f32be wav
h264 pcm_f32le webm
hls pcm_f64be wtv
ico pcm_f64le wv
ilbc pcm_mulaw yuv4mpegpipe
image2

Enabled protocols:
applehttp gopher pipe
cache hls rtmp
concat http rtmpt
crypto httpproxy rtp
data md5 srtp
ffrtmphttp mmsh tcp
file mmst udp

Enabled filters:
aconvert channelsplit nullsrc
aevalsrc color overlay
afade concat pad
aformat copy pan
allpass crop pixdesctest
alphaextract deshake removelogo
alphamerge drawbox rgbtestsrc
amerge earwax scale
amix edgedetect select
amovie equalizer sendcmd
anull fade setdar
anullsink field setfield
anullsrc fieldorder setpts
apad format setsar
aresample fps settb
aselect framestep showinfo
asendcmd gradfun showspectrum
asetnsamples hflip showwaves
asetpts highpass silencedetect
asettb idet smptebars
ashowinfo join split
asplit life swapuv
astreamsync lowpass testsrc
atempo lut thumbnail
bandpass lutrgb tile
bandreject lutyuv transpose
bass mandelbrot treble
bbox movie unsharp
biquad negate vflip
blackdetect noformat volume
cellauto null volumedetect
channelmap nullsink

Enabled bsfs:
aac_adtstoasc mjpeg2jpeg mp3_header_decompress
chomp mjpega_dump_header noise
dump_extradata mov2textsub remove_extradata
h264_mp4toannexb mp3_header_compress text2movsub
imx_dump_header

Enabled indevs:
alsa fbdev oss
dv1394 lavfi v4l2

Enabled outdevs:
alsa oss sdl


More information about the ffmpeg-user mailing list