web-dev-qa-db-fra.com

La vidéo ne joue pas correctement, problème de pilote vidéo

Chaque fois que j'ouvre une vidéo, mkv, mp4, etc., avec Media Player ou VLC, tout se présente comme suit:

1

Auparavant, cela fonctionnait bien, mais je crains d’avoir commis une erreur en essayant de faire fonctionner la version Linux de Shadow.

vlc génère les informations suivantes: avcodec decoder: Using G3DVL VDPAU Driver Shared Library version 1.0 for hardware decoding.

Lorsque je règle VDPAU_DRIVER=vdpau j'obtiens l'erreur Failed to open VDPAU backend libvdpau_vdpau.so: cannot open shared object file: No such file or directory mais ensuite la vidéo est parfaitement lisible. Des idées pour résoudre le problème?

EDIT: J'ai désinstallé mesa-vdpau-driver et VLC fonctionne, je suppose qu'il est par défaut à VA-API, Media Player continue de poser problème. Je ne sais toujours pas pourquoi cela a commencé.

Sudo lshw -c video
  *-display                 
       description: VGA compatible controller
       product: Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:01:00.0
       version: 00
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
       configuration: driver=radeon latency=0
       resources: irq:46 memory:c0000000-cfffffff memory:dfe00000-dfe3ffff ioport:e000(size=256) memory:c0000-dffff
4
rtaft

La raison en est que votre système d’accélération ne fonctionne pas correctement. Les puces AMD/Intel prennent en charge nativement l’accélération VA-API HW.
Mais la plupart des lecteurs ne prennent en charge que VDPAU, qui est un standard NVIDIA.
La solution consiste à utiliser le backend de VA-API pour accélérer VDPAU.

Vérifiez d'abord ce que vous avez:

 Sudo apt install vdpauinfo vainfo
 vainfo
 vdpauinfo

vainfo donnera un résultat qui ressemble à:

  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/i965_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.0)
  vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile - 1.7.0
  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
        VAProfileH264MultiviewHigh      : VAEntrypointVLD
        VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
        VAProfileH264StereoHigh         : VAEntrypointVLD
        VAProfileH264StereoHigh         : VAEntrypointEncSlice
        VAProfileVC1Simple              : VAEntrypointVLD
        VAProfileVC1Main                : VAEntrypointVLD
        VAProfileVC1Advanced            : VAEntrypointVLD
        VAProfileNone                   : VAEntrypointVideoProc
        VAProfileJPEGBaseline           : VAEntrypointVLD

(Travailler) vdpauinfo devrait montrer quelque chose comme:

 Decoder capabilities:

 name                        level macbs width height
 ----------------------------------------------------
 MPEG1                          --- not supported ---
 MPEG2_SIMPLE                   --- not supported ---
 MPEG2_MAIN                     --- not supported ---
 H264_BASELINE                  51 16384  2048  2048
 H264_MAIN                      51 16384  2048  2048
 H264_HIGH                      51 16384  2048  2048
 VC1_SIMPLE                     --- not supported ---
 VC1_MAIN                       --- not supported ---
 VC1_ADVANCED                   --- not supported ---
 MPEG4_PART2_SP                 --- not supported ---
 MPEG4_PART2_ASP                --- not supported ---
 DIVX4_QMOBILE                  --- not supported ---
 DIVX4_MOBILE                   --- not supported ---
 DIVX4_HOME_THEATER             --- not supported ---
 DIVX4_HD_1080P                 --- not supported ---
 DIVX5_QMOBILE                  --- not supported ---
 DIVX5_MOBILE                   --- not supported ---
 DIVX5_HOME_THEATER             --- not supported ---
 DIVX5_HD_1080P                 --- not supported ---
 H264_CONSTRAINED_BASELINE      51 16384  2048  2048
 H264_EXTENDED                  --- not supported ---
 H264_PROGRESSIVE_HIGH          --- not supported ---
 H264_CONSTRAINED_HIGH          --- not supported ---
 H264_HIGH_444_PREDICTIVE       --- not supported ---
 HEVC_MAIN                      --- not supported ---
 HEVC_MAIN_10                   --- not supported ---
 HEVC_MAIN_STILL                --- not supported ---
 HEVC_MAIN_12                   --- not supported ---
 HEVC_MAIN_444                  --- not supported ---

C'est la sortie (correcte) de mon système. VA-API et VDPAU fournissent tous deux une accélération. Votre problème est que le backend de VDPAU ne fournit pas une accélération correcte. C'est pourquoi, lorsque VDPAU est désactivé (paramètre VDPAU_DRIVER = vdpau), vous obtenez une sortie correcte, mais aucune accélération.

Par conséquent, en supposant que VA-API soit correctement configurée, installez le backend de VA-API pour VDPAU. Faire ceci:

   apt install  libvdpau-va-gl1

et essayez avec VDPAU_DRIVER = va_gl

De plus, puisque vous utilisez VDPAU au-dessus de VA-API, il suffit de couper l'homme du milieu et (sur VLC) d'utiliser directement le VA-API hw accel (VLC le prend en charge).

En outre, vous pouvez utiliser mpv (c’est un excellent lecteur qui prend en charge l’appliance virtuelle VA-API).

1
Domo N Car

Puisque vous avez une carte graphique Radeon (AMD/ATI), vous devez installer les pilotes Radeon. Il existe deux "versions" de vdpau: une intel (fournie par le noyau) et une AMD (fournie par le pilote radeon source proche). L'erreur pourrait expliquer que le mauvais pilote VDPAU ait été adressé.

0
kanehekili