gstreamer1.0-vaapi не может найти драйвер
На сервере Ubuntu 16.04.3, когда я пытаюсь запустить видео в графическом приложении на основе Qt Quick (eglfs бэкэнд (EGL полный экран)) видео начинает дергаться (стало прерывистым, резким, не знаю правильного слова). На предыдущей установке видео воспроизводилось плавно. Я провожу деревья *.so загружается во время воспроизведения видео для старой и новой установки. Там нет разницы. Я сделал предположение, что проблема может быть в аппаратном ускорении.
После того как я установил gstreamer1.0-vaapi Пакет и перезапустите приложение, оно зависает, если я нажимаю кнопку "воспроизведения". Журнал содержит следующие сообщения:
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
libva info: va_openDriver() returns -1
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
debug qml: Error: 1 (Could not initialize supporting library.) (qrc:///qml/imports/FileManager/components/VideoPlayer.qml:41)
warning default: Error: "Could not initialize supporting library." (unknown:0)
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
libva info: va_openDriver() returns -1
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
debug qml: Error: 1 (Could not initialize supporting library.) (qrc:///qml/imports/FileManager/components/VideoPlayer.qml:41)
warning default: Error: "Could not initialize supporting library." (unknown:0)
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
Затем я набираю:
# apt-file search /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
mesa-va-drivers: /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
# apt install mesa-va-drivers
# ls /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
ls: cannot access '/usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so': No such file or directory
Как это возможно? Есть доказательства того, что пакет mesa-va-drivers должен содержать это *.so файл. Ни один другой пакет не сделал. Должен ли я создавать драйверы mesa va самостоятельно?
Как старые, так и новые системы имеют следующую конфигурацию: AMD A10-7800 Radeon R7, 12 вычислительных ядер 4C + 8G.
vainfo:
error: can't connect to X server!
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
1 ответ
У меня на самом деле было то же самое. Да, @RobertRiedl комментарий о том, где gallium_drv_video.so верно. Тем не менее, он не указан как таковой, поскольку это только ссылка на другой файл.
Чтобы это исправить, я сделал следующее:
cd /usr/lib/x86_64-linux-gnu/dri/
sudo rm gallium_drv_video.so
sudo apt install mesa_va_drivers
sudo ln -s radeonsi_drv_video.so gallium_drv_video.so
После запуска вышеописанного, затем проверка vainfo работала нормально:
Чтобы исправить не удается подключиться к X-серверу, выполните:
export DISPLAY=:0
xhost +
Бег vainfo чтобы убедиться, что он работает:
:~$ vainfo
libva info: VA-API version 0.39.2
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.1)
vainfo: Driver version: Mesa Gallium driver 18.1.0-devel for AMD RS880 (DRM 2.50.0 / 4.13.0-36-generic, LLVM 6.0.0)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
Надеюсь это поможет!