web-dev-qa-db-ja.com

gstreamer1.0-vaapiがドライバーを見つけられません

Ubuntu 16.04.3サーバーで、Qt Quickベースのグラフィカルアプリケーション(eglfsバックエンド(EGLフルスクリーン))でビデオを起動しようとすると、ビデオがTwitchを開始します(途切れ途切れ、ぎくしゃくした、正しくないWordになります)。以前のインストールビデオではスムーズに再生されました。古いインストールと新しいインストールのビデオの再生中に読み込まれた*.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 Compute Cores 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
Orient

私は実際にこれとまったく同じものを持っていました。はい、@ 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

お役に立てれば!

1
Terrance