[FFmpeg-user] vaapi can't find entrypoint shown by vainfo

Dennis Mungai dmngaie at gmail.com
Sat May 4 20:54:39 EEST 2019


On Sat, 4 May 2019 at 20:42, sean darcy <seandarcy2 at gmail.com> wrote:

> Giving up on qsv, I'm trying vaapi, but ffmpeg can't find the vp9 entry
> point supported by my cpu , and found by vainfo.
>
> FWIW, hevc_vaapi works.
>
>
> ffmpeg -vaapi_device /dev/dri/renderD128 -i infile.mkv -map v -map 0:2
> -vf format=nv12,hwupload -c:v vp9_vaapi -global_quality 50 -bsf:v
> vp9_raw_reorder,vp9_superframe -rc_mode 5 -r 24000/1001 -c:a copy -dn
> vp9-vaapi.mp4
> ffmpeg version git-snapshot-20190502-RPMFusion Copyright (c) 2000-2019
> the FFmpeg developers
>    built with gcc 8 (GCC)
>    configuration: --prefix=/usr --bindir=/usr/bin
> --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg
> --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64
> --optflags='-O3 -ffast-math -march=native -ftree-vectorize
> -fomit-frame-pointer -pipe -fPIC' --enable-bzlib --disable-crystalhd
> --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls
> --enable-ladspa --enable-libass --enable-libbluray --enable-libcdio
> --disable-libdav1d --enable-libfdk-aac --enable-nonfree
> --enable-indev=jack --enable-libfreetype --enable-libfribidi
> --enable-libgsm --enable-libmfx --enable-libmp3lame --enable-openal
> --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus
> --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libtheora
> --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libwebp
> --enable-libx264 --enable-libx265 --enable-avfilter --enable-postproc
> --enable-pthreads --disable-static --enable-shared --enable-gpl
> --enable-version3 --enable-nonfree --disable-debug --enable-stripping
> --shlibdir=/usr/lib64 --enable-runtime-cpudetect
>    libavutil      56. 26.100 / 56. 26.100
>    libavcodec     58. 52.100 / 58. 52.100
>    libavformat    58. 27.103 / 58. 27.103
>    libavdevice    58.  7.100 / 58.  7.100
>    libavfilter     7. 50.100 /  7. 50.100
>    libswscale      5.  4.100 /  5.  4.100
>    libswresample   3.  4.100 /  3.  4.100
>    libpostproc    55.  4.100 / 55.  4.100
> Input #0, matroska,webm, from 'infile.mkv':
> ..................
>
> Stream mapping:
>    Stream #0:0 -> #0:0 (h264 (native) -> vp9 (vp9_vaapi))
>    Stream #0:2 -> #0:1 (copy)
> Press [q] to stop, [?] for help
> [vp9_vaapi @ 0xe57040] No usable encoding entrypoint found for profile
> VAProfileVP9Profile0 (19).
> Error initializing output stream 0:0 -- Error while opening encoder for
> output stream #0:0 - maybe incorrect parameters such as bit_rate, rate,
> width or height
> Conversion failed!
>
>
> but vainfo finds the entrypoint :
>
> vainfo
> error: can't connect to X server!
> libva info: VA-API version 1.4.1
> libva info: va_getDriverName() returns 0
> libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
> libva info: Found init function __vaDriverInit_1_4
> libva info: va_openDriver() returns 0
> vainfo: VA-API version: 1.4 (libva 2.4.0)
> vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 2.3.0
> vainfo: Supported profile and entrypoints
> ....
> VAProfileVP9Profile0
>
>
>
What you've omitted here is the entry point type.
For supported codecs, you want the entry point type to be in the Slice list.

Run:

vainfo | grep Slice

And confirm that you've got VP9 listed there.

>From what you've provided, you have a Skylake-based SKU that has no support
for VP9-based encoding, only VP8.
VP9-based *decoding* is supported via the intel hybrid driver (
https://github.com/intel/intel-hybrid-driver), and this also requires the
intel vaapi driver (i965) to be built with the --enable-hybrid-codec option
enabled at the configuration phase.
Your distribution may have this option enabled by default by the package
maintainer.
Also see https://github.com/intel/libva/issues/77


More information about the ffmpeg-user mailing list