На сервере 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
У меня на самом деле была такая же вещь. Да, комментарий @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
Надеюсь, это поможет!
У меня на самом деле была такая же вещь. Да, комментарий @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
Надеюсь, это поможет!