FFmpeg hardware transcoding
driesm.michiels at gmail.com
driesm.michiels at gmail.com
Tue Feb 26 19:35:46 UTC 2019
Hi Multimedia mailing list,
Here I am again with a follow-up question to this.
I was wondering if hardware acceleration is possible even if I am building
all ports with X11 unset (off).
I noticed that when building ports related to hardware acceleration, more
specifically, libva-utils to check if driver etc is detected with vainfo, it
fails with this;
[~]$ vainfo
ld-elf.so.1: Shared object "libva-x11.so.2" not found, required by "vainfo"
This fails because I build libva without X11 support. Is vainfo only
supported to work on platforms that are running an X11 server?
When I reinstall libva with X11 support vainfo works, although it does say
its not detecting X11 server (which I'm not interested in).
I am interested however in the capabilities of the detected driver and if it
is detected at all.
Output of vainfo:
[~]$ vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
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
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileH264ConstrainedBaseline: VAEntrypointStats
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264Main : VAEntrypointFEI
VAProfileH264Main : VAEntrypointStats
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointFEI
VAProfileH264High : VAEntrypointStats
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
Possible solution (although I'm really just guessing here and are probably
not correct in many ways);
- Try build vainfo without linking against libva-x11.so
- Remove X11 option from libva and always enable it (only a few extra
libraries that get pulled in by this)
Thanks,
Dries
> -----Original Message-----
> From: Jan Beich <jbeich at FreeBSD.org>
> Sent: woensdag 20 februari 2019 23:57
> To: driesm.michiels at gmail.com
> Cc: freebsd-multimedia at freebsd.org
> Subject: Re: FFmpeg hardware transcoding
>
> <driesm.michiels at gmail.com> writes:
>
> > What is the minimum requirements for being able to utilize quick sync
> > on my intel chip for ffmpeg hardware transcoding?
>
> I don't configure my system(s) daily to remember such things. ;)
>
> Quick Sync Video is exposed via MediaSDK (high-level) and libva
(low-level).
> MediaSDK hasn't been ported yet but media-driver (its backend) has.
> FFmpeg and GStreamer support both MediaSDK and libva.
>
> > 1. DRM module loaded
> > 2. Correct permission for the application on /dev/dri/renderD128
> > 3. FFmpeg build with libva support (VAAPI on)
>
> 4. Either libva-intel-driver or libva-intel-media-driver
>
> > Are there any more I am missing?
>
> Probably not. Try and report your issues.
>
> > I saw another driver in ports as "multimedia/libva-intel-media-driver"?
>
> Try both. ;) Some examples from
> https://trac.ffmpeg.org/wiki/Hardware/VAAPI
> don't work on iHD e.g., "Burn subtitles into the video while transcoding".
>
> i965 (libva-intel-driver) advantages:
> - VP8 encoding on Skylake
> - Partial VP8 encoding on Haswell/Broadwell
> - Partial VP9 decoding on Haswell/Broadwell/Skylake
> - H264 encoding profiles for Multiview and Stereo
>
> iHD (libva-intel-media-driver) advantages:
> - Decoding on console framebuffer (e.g, mpv --gpu-context=drm)
> - Better encoding performance (even without MediaSDK)
> - FEI (Flexible Encoding Infrastructure) for HEVC
> - JIT (Just-In-Time) compilation of media kernels (needs intel-graphics-
> compiler)
> - Icelake support (and maybe Xe in future)
> - Actively developed upstream
More information about the freebsd-multimedia
mailing list