ci7lus / MirakTest

Mirakurun 用映像視聴アプリ実装研究資料
MIT License
63 stars 6 forks source link

緑色の画面になり再生できない #116

Open Hayao0819 opened 1 year ago

Hayao0819 commented 1 year ago

症状

AppImage版MirakTestにて、Ubuntu 22.04で画面が緑色になり正常に再生できません。

チャンネルや番組に関係なく、すべてにおいて同様の症状が発生します。

WindowsやmacOSからは正常に再生できるため、Mirakurun等の問題ではなくMirakTestのLinux固有の問題であると考えられます。

音声も正常に再生されているおり、libvlcのハードウェアアクセラレーションに関する描写の問題では無いかと考えています。

image

出力

引数、環境変数の指定なし

hayao@Hayao--Ubuntu ~> ./Applications/MirakTest-2.0.0_2b501a7e1efaf3cb5331cc3f916ed2f1.AppImage 
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Configured globalScreenshotAccelerator: undefined
Ignore plug-ins matching the following names: []
Load plugins from: /home/hayao/.config/MirakTest/plugins
[Plugin] Initial load plugins: []
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[epgmanager] 番組情報を取得します: localhost
[epgmanager] 番組イベントストリームへ接続します: localhost
[10685:0927/151757.631425:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[10685:0927/151757.641048:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[10685:0927/151800.732241:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!

libvaに関する環境変数を用いてエラーを解消

hayao@Hayao--Ubuntu ~ [SIGINT]> LIBVA_DRIVER_NAME=iHD LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so ./Applications/MirakTest-2.0.0_2b501a7e1efaf3cb5331cc3f916ed2f1.AppImage
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Configured globalScreenshotAccelerator: undefined
Ignore plug-ins matching the following names: []
Load plugins from: /home/hayao/.config/MirakTest/plugins
[Plugin] Initial load plugins: []
[epgmanager] 番組情報を取得します: localhost
[epgmanager] 番組イベントストリームへ接続します: localhost
[10862:0927/151848.202808:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[10862:0927/151851.507144:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!

vainfo

hayao@Hayao--Ubuntu ~> vainfo
libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.14 (libva 2.12.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Sandybridge Desktop - 2.4.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

環境

Ubuntuは仮想マシンではなく実機で稼働させています。

ハードウェア

ソフトウェア

試したこと

ci7lus commented 1 year ago

この現象ですが、debian-multimedia 由来などハードウェア支援が有効になっている VLC が導入されている環境だと発生するようです。 ただ設定から avcodec-hw=none を渡すようにしても効いていないので、現状そのような環境で使用するには、ハードウェア支援が入っていないリポジトリの VLC を導入するか、ハードウェア支援を無効化した VLC をセルフビルドして使ってもらうしかなさそうです。

参考

Hayao0819 commented 1 year ago

これらの情報も参考になるでしょうか??現時点ではlibvlc側の問題ということすかね…

https://forum.videolan.org/viewtopic.php?t=148022