You are not logged in.

#1 2016-07-21 15:07:35

FlowIt
Member
Registered: 2014-10-25
Posts: 239

[Solved] ffvpx vs libvpx

Reading that the ffmpeg internal ffvpx decoders/encoders are superior to those shipped by libvpx I recompiled ffmpeg with the --disable-libvpx option, but now I don't have vpx support at all. So did I misunderstand what --disable-libvpx does? I says that ffmpeg will link to the external library to get those encoders/decoders, exactly what I don't want. I also haven't found an option to explicitly enable ffvpx.

Last edited by FlowIt (2016-07-21 18:36:38)

Offline

#2 2016-07-21 15:26:35

Gusar
Member
Registered: 2009-08-25
Posts: 3,605

Re: [Solved] ffvpx vs libvpx

There is no "ffvpx" as such, what is there are the internal vp8 and vp9 decoders (just decoders, no encoders). They are available unless you explicitly disable them with --disable-decoder=vp8,vp9

Offline

#3 2016-07-21 16:06:32

FlowIt
Member
Registered: 2014-10-25
Posts: 239

Re: [Solved] ffvpx vs libvpx

I meant the internal decoders ffvp8 and ffvp9 with ffvpx. Good to know that there are no encoders, but I can't think of anything where I would need an encoder. I rebuild ffmpeg with --disable-libvpx and --enable-decoder='vp8,vp9' but still I don't have vpx support.

Offline

#4 2016-07-21 16:18:41

Gusar
Member
Registered: 2009-08-25
Posts: 3,605

Re: [Solved] ffvpx vs libvpx

Again, there is no vpx in ffmpeg, there's vp8 and vp9. What exactly do you mean by "don't have vpx support", that you can't decode vp8 and vp9 video? Building ffmpeg, when ./configure finishes it lists everything that will be built, are vp8 and vp9 among the decoders in that list?

Offline

#5 2016-07-21 16:25:29

FlowIt
Member
Registered: 2014-10-25
Posts: 239

Re: [Solved] ffvpx vs libvpx

The x in vpx is just a placeholder for 8 or 9, sorry if this wasn't clear. Exactly, decoding of webm files (both with vp8 and vp9 codec) is not supported. vp8 and vp9 are in ffmpeg's configure output as enabled decoders. Linking against libvpx allows me to decode, but afaik other (from a different developer) decoders will be used.

Offline

#6 2016-07-21 16:37:41

Gusar
Member
Registered: 2009-08-25
Posts: 3,605

Re: [Solved] ffvpx vs libvpx

Ok, that makes no sense. Post the full ./configure line you use and the output. Also, can you provide a sample file that doesn't play?

Offline

#7 2016-07-21 17:15:36

FlowIt
Member
Registered: 2014-10-25
Posts: 239

Re: [Solved] ffvpx vs libvpx

  ./configure \
    --pkg-config-flags="--static" \
    --disable-static \
    --prefix=/usr \
    --disable-debug \
    --enable-optimizations \
    --enable-stripping \
    --disable-random \
    --enable-vaapi \
    --disable-programs \
    --disable-netcdf \
    --disable-doc \
    --disable-avisynth \
    --disable-avresample \
    --disable-fontconfig \
    --enable-gpl \
    --enable-nonfree \
    --disable-libfreetype \
    --enable-libopenjpeg \
    --enable-gnutls \
    --disable-sdl \
    --enable-libssh \
    --disable-libvpx \
    --enable-libx264 \
    --enable-libx265 \
    --enable-shared \
    --enable-version3 \
    --disable-libxcb \
    --disable-x11grab \
    --enable-hwaccel='h264_vaapi,hevc_vaapi,vp9_vaapi' \
    --enable-decoder='vp8,vp9'

And ffmpeg's output, vp8 and vp9 are there:

External libraries:
gnutls			   libssh		      lzma
iconv			   libx264		      xlib
libopenjpeg		   libx265		      zlib

External libraries providing hardware acceleration:
vaapi

Libraries:
avcodec			   avformat		      swresample
avdevice		   avutil		      swscale
avfilter		   postproc

Enabled decoders:
aac			   flashsv		      pcm_s24le_planar
aac_latm		   flashsv2		      pcm_s32le_planar
adpcm_adx		   flic			      pcm_s8
adpcm_afc		   fourxm		      pcm_u16be
adpcm_aica		   fraps		      pcm_u24be
adpcm_dtk		   frwu			      pcm_u24le
adpcm_ea		   g2m			      pcm_u32be
adpcm_ea_r1		   gif			      pcm_u32le
adpcm_ea_r2		   gsm			      pcm_u8
adpcm_ea_xas		   gsm_ms		      pgmyuv
adpcm_g726le		   hap			      pgssub
adpcm_ima_amv		   hevc			      prores
adpcm_ima_dat4		   hq_hqa		      ptx
adpcm_ima_ea_eacs	   iff_ilbm		      qcelp
adpcm_ima_ea_sead	   imc			      qtrle
adpcm_ima_iss		   indeo2		      ralf
adpcm_ima_oki		   indeo3		      rpza
adpcm_ima_rad		   indeo5		      rv40
adpcm_ima_ws		   interplay_acm	      s302m
adpcm_sbpro_2		   interplay_video	      sdx2_dpcm
adpcm_sbpro_3		   jacosub		      sgirle
adpcm_sbpro_4		   jpeg2000		      smackaud
adpcm_thp		   jv			      smacker
adpcm_thp_le		   kgv1			      sol_dpcm
adpcm_yamaha		   lagarith		      stl
alias_pix		   libopenjpeg		      subrip
amrnb			   loco			      subviewer1
ape			   m101			      sunrast
apng			   mace6		      svq1
ass			   magicyuv		      svq3
asv2			   mdec			      targa_y216
aura			   metasound		      tiertexseqvideo
aura2			   mmvideo		      tiff
avrp			   movtext		      tmv
avui			   mp1			      truespeech
ayuv			   mp2float		      tscc2
brender_pix		   mp3			      twinvq
cavs			   mp3adu		      utvideo
cdxl			   mp3adufloat		      v210
cinepak			   mp3on4		      v308
cllc			   mp3on4float		      vcr1
cpia			   mpc7			      vmdaudio
cyuv			   mpegvideo		      vmdvideo
dds			   mpl2			      vmnc
dfa			   msa1			      vorbis
dirac			   msrle		      vp3
dsd_lsbf		   msvideo1		      vp6
dsd_msbf_planar		   mszh			      vp6a
dsicinaudio		   mts2			      vp6f
dsicinvideo		   nuv			      vp8
dvaudio			   opus			      vp9
dxtory			   pbm			      wavpack
dxv			   pcm_alaw		      wmalossless
eacmv			   pcm_bluray		      wmavoice
eightbps		   pcm_f32be		      xan_dpcm
eightsvx_exp		   pcm_f32le		      xan_wc3
eightsvx_fib		   pcm_f64le		      xbin
escape124		   pcm_mulaw		      yop
escape130		   pcm_s16le_planar	      zero12v
exr			   pcm_s24daud		      zerocodec
ffwavesynth

Enabled encoders:
a64multi		   jpeg2000		      roq_dpcm
ac3			   libopenjpeg		      sgi
adpcm_adx		   libx265		      sonic
adpcm_g726		   mjpeg_vaapi		      sonic_ls
adpcm_ima_qt		   movtext		      ssa
adpcm_ima_wav		   mpeg2video		      text
adpcm_swf		   pam			      tta
adpcm_yamaha		   pcm_f32be		      utvideo
alac			   pcm_f32le		      v210
ass			   pcm_f64le		      v308
asv2			   pcm_mulaw		      v410
avui			   pcm_s24be		      vc2
ayuv			   pcm_s24le		      vorbis
bmp			   pcm_s24le_planar	      wavpack
comfortnoise		   pcm_s32le_planar	      webvtt
dnxhd			   pcm_u16le		      wmav1
dvdsub			   pcm_u24be		      wmav2
ffvhuff			   pcm_u24le		      wrapped_avframe
flac			   pgmyuv		      xbm
gif			   png			      xface
h261			   prores_ks		      y41p
h264_vaapi		   r10k			      yuv4
huffyuv			   r210

Enabled hwaccels:
hevc_vaapi		   vp9_vaapi

Enabled parsers:
aac_latm		   gsm			      pnm
cook			   h261			      rv40
dca			   hevc			      tak
dpx			   mpeg4video		      vc1
dvbsub			   mpegvideo		      vorbis
dvd_nav			   opus			      vp8
dvdsub			   png			      vp9
g729

Enabled demuxers:
aa			   image_dpx_pipe	      pcm_f32le
acm			   image_exr_pipe	      pcm_f64be
act			   image_jpegls_pipe	      pcm_f64le
afc			   image_pam_pipe	      pcm_s16be
aix			   image_pbm_pipe	      pcm_s32be
amr			   image_pgm_pipe	      pcm_s32le
apc			   image_pgmyuv_pipe	      pcm_u16le
aqtitle			   image_pictor_pipe	      pcm_u32le
asf_o			   image_png_pipe	      pjs
ass			   image_qdraw_pipe	      pvf
au			   image_sgi_pipe	      r3d
avi			   ingenient		      rawvideo
avr			   iv8			      realtext
bfi			   ivr			      rl2
bink			   jv			      rpl
bit			   loas			      rsd
bmv			   lrc			      shorten
boa			   lxf			      sln
caf			   m4v			      smjpeg
cdg			   mgsts		      smush
cine			   mjpeg		      sox
concat			   mlp			      spdif
data			   mlv			      stl
daud			   mm			      tak
dcstr			   mmf			      thp
dnxhd			   mpc8			      tiertexseq
dtshd			   mpegts		      tta
dv			   mpegvideo		      txd
dvbsub			   mpjpeg		      vc1
dxa			   mpl2			      vivo
ea_cdata		   mpsub		      vmd
ffm			   msf			      voc
flic			   musx			      vpk
flv			   mv			      wsvqa
fsb			   mvi			      wv
gsm			   mxf			      wve
gxf			   nc			      xvag
h263			   nistsphere		      xwma
idcin			   oma			      yop
iff			   pcm_f32be

Enabled muxers:
aiff			   matroska_audio	      pcm_u24be
ass			   mlp			      pcm_u24le
au			   mmf			      pcm_u8
crc			   mp2			      rm
dirac			   mp3			      rso
dnxhd			   mpeg2dvd		      rtp
dts			   mpeg2video		      rtp_mpegts
dv			   mpeg2vob		      segment
flac			   null			      smjpeg
flv			   ogg			      srt
framehash		   opus			      tee
gsm			   pcm_f32be		      truehd
h263			   pcm_f64le		      voc
hash			   pcm_s16be		      webm
ico			   pcm_s16le		      webm_chunk
ircam			   pcm_s32be		      webp
ivf			   pcm_s8		      wv
m4v			   pcm_u16be		      yuv4mpegpipe
matroska		   pcm_u16le

Enabled protocols:
async			   mmst			      tcp
ftp			   rtmp			      tls_gnutls
https			   rtmps		      udp
libssh			   rtp			      udplite

Enabled filters:
abench			   convolution		      realtime
acompressor		   copy			      remap
acrossfade		   cropdetect		      removegrain
adelay			   curves		      repeatfields
aecho			   dctdnoiz		      replaygain
afftfilt		   deflate		      reverse
aformat			   drawbox		      rgbtestsrc
ahistogram		   dynaudnorm		      sab
ainterleave		   edgedetect		      scale
alimiter		   eq			      select
aloop			   equalizer		      selectivecolor
alphamerge		   erosion		      sendcmd
amerge			   extrastereo		      setfield
ametadata		   fftfilt		      setpts
amovie			   field		      setsar
anequalizer		   fieldhint		      showfreqs
anoisesrc		   find_rect		      showinfo
anullsrc		   flanger		      showspectrum
aperms			   format		      showwaves
aphasemeter		   gradfun		      showwavespic
arealtime		   haldclutsrc		      sidechaincompress
aresample		   hdcd			      signalstats
asendcmd		   hqx			      silenceremove
asetpts			   hwdownload		      smptehdbars
asetrate		   il			      split
asplit			   interlace		      stereo3d
astats			   kerndeint		      stereotools
atadenoise		   lenscorrection	      stereowiden
atrim			   mandelbrot		      swaprect
avectorscope		   maskedmerge		      tblend
bandreject		   mcdeint		      testsrc
bench			   mptestsrc		      thumbnail
biquad			   nullsink		      tile
blend			   overlay		      tinterlace
boxblur			   pad			      treble
bwdif			   palettegen		      tremolo
cellauto		   paletteuse		      unsharp
chorus			   pan			      uspp
chromakey		   phase		      vectorscope
ciescope		   pixdesctest		      vflip
color			   pp			      vibrato
colorbalance		   pp7			      vignette
colorkey		   psnr			      volume
colorlevels		   pullup		      volumedetect
colormatrix		   qp			      xbr
compand			   random

Enabled bsfs:
aac_adtstoasc		   mjpeg2jpeg		      mpeg4_unpack_bframes
h264_mp4toannexb	   mjpega_dump_header	      noise
imx_dump_header		   mp3_header_decompress      remove_extradata

Enabled indevs:
dv1394			   oss

Enabled outdevs:
v4l2

As for an example file - since I am not sure about any redistribution laws, just download any YT video in WebM format, I haven't found a single one that works.

Last edited by FlowIt (2016-07-21 17:25:23)

Offline

#8 2016-07-21 18:12:03

Gusar
Member
Registered: 2009-08-25
Posts: 3,605

Re: [Solved] ffvpx vs libvpx

That configure output is weird. Like *really* weird, lots of stuff missing all over the place. So I tried your ./configure command locally. And my output was also weird! Basically, *do not set* --disable-random, it screws everything up. The reason you couldn't play webm files wasn't actually the lack of vp8/9, but the lack of a matroska demuxer (webm is a subset of matroska, so without a matroska demuxer you can't play webm files).

BTW, you don't need the --enable-hwaccel and --enable-decoder parts, you have everything enabled anyway.

Offline

#9 2016-07-21 18:36:13

FlowIt
Member
Registered: 2014-10-25
Posts: 239

Re: [Solved] ffvpx vs libvpx

It's funny how a --disable-random compile option can randomize so much... I removed that option und built again, now everything is working again.

Last edited by FlowIt (2016-07-21 18:36:25)

Offline

Board footer

Powered by FluxBB