web-dev-qa-db-ja.com

ビデオが正しく再生されない、ビデオドライバーの問題

Media PlayerまたはVLCでビデオ、mkv、mp4などを開くと、すべてが次のように表示されます。

1

これは以前は正常に機能していましたが、LinuxバージョンのShadowを機能させるために何かを台無しにしたのではないかと心配しています。

vlcは次を出力します:avcodec decoder: Using G3DVL VDPAU Driver Shared Library version 1.0 for hardware decoding.

VDPAU_DRIVER=vdpauを設定すると、エラーFailed to open VDPAU backend libvdpau_vdpau.so: cannot open shared object file: No such file or directoryが表示されますが、その後ビデオは完全に正常に再生されます。これを修正する方法についてのアイデアはありますか?

編集:mesa-vdpau-driverをアンインストールし、VLCは動作しますが、VA-APIがデフォルトになっていると思われますが、Media Playerは引き続き問題です。なぜこれが始まったのかまだわかりません。

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

その理由は、アクセラレーションバックエンドが適切に機能していないためです。 AMD/Intelチップは、VA-API HWアクセラレーションをネイティブでサポートします。
ただし、ほとんどのプレーヤーは、NVIDIA標準であるVDPAUのみをサポートしています。
解決策は、VA-APIバックエンドを使用してVDPAUを高速化することです。

まず、あなたが持っているものを確認してください:

 Sudo apt install vdpauinfo vainfo
 vainfo
 vdpauinfo

vainfoは次のような結果を返します。

  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

(動作中)vdpauinfoは次のように表示されます:

 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 ---

これは私のシステムの(正しい)出力です。 VA-APIとVDPAUの両方が高速化を提供します。問題は、VDPAUバックエンドが正しいアクセラレーションを提供していないことです。そのため、VDPAUを無効にすると(VDPAU_DRIVER = vdpau設定)、正しい出力が得られますが、加速は得られません。

したがって、VA-APIが正しくセットアップされていると仮定して、VDPAUのVA-APIバックエンドをインストールします。これを行う:

   apt install  libvdpau-va-gl1

そしてVDPAU_DRIVER = va_glで試してください

また、VA-APIの上でVDPAUを使用しているため、中間者をカットし、(VLCでは)VA-API hw accelを直接使用します(VLCはそれをサポートします)。

また、mpvを使用できます(これは、VA-APIをネイティブにサポートする優れたプレーヤーです)。

1
Domo N Car

Radeon(AMD/ATI)グラフィックスカードがあるため、Radeonドライバーをインストールする必要があります。 2つのvdpau「フレーバー」があります。1つはインテル(カーネルが提供)、もう1つはAMD(ソースが近いradeonドライバーが提供)です。エラーは、間違ったVDPAUドライバーがアドレス指定されたことを説明できます。

0
kanehekili