Ivy Bridge平台编译FFmpeg后QSV硬件解码初始化失败的解决求助
Ivy Bridge平台编译FFmpeg后QSV硬件解码初始化失败的解决求助
大家好,我最近碰到了FFmpeg硬件解码的问题,想请教下各位大佬:
我之前跟着教程从源码编译了FFmpeg,但我的CPU是老款i7(Ivy Bridge平台),一开始FFmpeg没法初始化解码器。查了相关讨论后发现,Intel-Media-Driver并不适合这类老款i7,所以我换成了intel-vaapi-driver,之后重新编译了FFmpeg。
先给大家看看我的vainfo输出:
$ vainfo Trying display: drm libva info: VA-API version 1.17.0 libva info: Trying to open /usr/local/lib/dri/iHD_drv_video.so libva info: va_openDriver() returns -1 libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_1_17 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.17 (libva 2.17.0.pre1) vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Desktop - 2.4.0.pre1 (2.3.0-35-gab755cb) vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc VAProfileJPEGBaseline : VAEntrypointVLD
再看看FFmpeg里的QSV解码器情况:
$ ffmpeg -decoders | grep qsv ffmpeg version N-109368-gcc11afe502 Copyright (c) 2000-2022 the FFmpeg developers built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1) configuration: --prefix=/usr/local/ffmpeg --extra-cflags=-I/opt/intel/mediasdk/include --extra-ldflags=-L/opt/intel/mediasdk/lib --extra-ldflags=-L/opt/intel/mediasdk/plugins --enable-libmfx --enable-vaapi --enable-opencl --disable-debug --enable-libvorbis --enable-libvpx --enable-libdrm --enable-gpl --cpu=native --enable-libfdk-aac --enable-libx264 --enable-libx265 --extra-libs=-lpthread --enable-nonfree --enable-openssl libavutil 57. 43.100 / 57. 43.100 libavcodec 59. 54.100 / 59. 54.100 libavformat 59. 34.102 / 59. 34.102 libavdevice 59. 8.101 / 59. 8.101 libavfilter 8. 51.100 / 8. 51.100 libswscale 6. 8.112 / 6. 8.112 libswresample 4. 9.100 / 4. 9.100 libpostproc 56. 7.100 / 56. 7.100 V....D av1_qsv AV1 video (Intel Quick Sync Video acceleration) (codec av1) V....D h264_qsv H264 video (Intel Quick Sync Video acceleration) (codec h264) V....D hevc_qsv HEVC video (Intel Quick Sync Video acceleration) (codec hevc) V....D mjpeg_qsv MJPEG video (Intel Quick Sync Video acceleration) (codec mjpeg) V....D mpeg2_qsv MPEG2VIDEO video (Intel Quick Sync Video acceleration) (codec mpeg2video) V....D vc1_qsv VC1 video (Intel Quick Sync Video acceleration) (codec vc1) V....D vp8_qsv VP8 video (Intel Quick Sync Video acceleration) (codec vp8) V....D vp9_qsv VP9 video (Intel Quick Sync Video acceleration) (codec vp9)
不过当我运行这条简单的硬件解码命令时:
ffmpeg -hwaccel qsv -c:v h264_qsv -i ...
却弹出了错误:
[AVHWDeviceContext @ 0x5621dbd9f100] Failed to initialise VAAPI connection: -1 (unknown libva error). Device creation failed: -5. No device available for decoder: device type qsv needed for codec h264_qsv.
有没有朋友知道,我应该怎么调整FFmpeg的编译配置,才能让QSV正常支持我的Ivy Bridge CPU呢?
备注:内容来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

