Hardware-Dekodierung erzwingen (VLC-Player, DVB-C via FritzBox)

Hallo zusammen,

mein VLC-Player scheint die Dekodierung von DVB-C mittels CPU zu vorzunehmen, was dazu führt, dass mein Laptop dabei schnell warm und laut wird. In den Eingang- & Codec-Einstellungen habe ich unter Hardware-beschleunigte Dekodierung diese Optionen zur Auswahl:

Nichts davon ändert etwas. Fehlt da vielleicht ein Treiber? Was kann ich tun?

Viele Dank!

System:
  Kernel: 6.8.9-3-MANJARO arch: x86_64 bits: 64
  Desktop: KDE Plasma v: 6.0.4 Distro: Manjaro Linux
Machine:
  Type: Laptop System: Dell product: XPS 15 7590 v: N/A
    serial: <superuser required>
  Mobo: Dell model: 0VYV0G v: A00 serial: <superuser required> UEFI: Dell
    v: 1.27.0 date: 02/01/2024
Battery:
  ID-1: BAT0 charge: 74.4 Wh (100.0%) condition: 74.4/97.0 Wh (76.7%)
CPU:
  Info: 6-core model: Intel Core i7-9750H bits: 64 type: MT MCP cache:
    L2: 1.5 MiB
  Speed (MHz): avg: 808 min/max: 800/4500 cores: 1: 800 2: 800 3: 800 4: 800
    5: 800 6: 800 7: 800 8: 897 9: 800 10: 800 11: 800 12: 800
Graphics:
  Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] driver: i915 v: kernel
  Device-2: NVIDIA TU117M [GeForce GTX 1650 Mobile / Max-Q] driver: nvidia
    v: 550.78
  Device-3: Microdia Integrated_Webcam_HD driver: uvcvideo type: USB
  Display: x11 server: X.Org v: 21.1.13 with: Xwayland v: 23.2.6 driver: X:
    loaded: modesetting,nvidia dri: iris gpu: i915 resolution: 1920x1080~60Hz
  API: EGL v: 1.5 drivers: iris,nvidia,swrast
    platforms: x11,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 24.0.6-manjaro1.1
    renderer: Mesa Intel UHD Graphics 630 (CFL GT2)
  API: Vulkan v: 1.3.279 drivers: nvidia surfaces: xcb,xlib
Audio:
  Device-1: Intel Cannon Lake PCH cAVS driver: snd_hda_intel
  API: ALSA v: k6.8.9-3-MANJARO status: kernel-api
  Server-1: PulseAudio v: 17.0 status: active
Network:
  Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi
  IF: wlp59s0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel AX200 Bluetooth driver: btusb type: USB
  Report: rfkill ID: hci0 rfk-id: 2 state: down bt-service: enabled,running
    rfk-block: hardware: no software: yes address: see --recommends
Drives:
  Local Storage: total: 476.94 GiB used: 352.48 GiB (73.9%)
  ID-1: /dev/nvme0n1 vendor: Toshiba model: KXG60ZNV512G NVMe 512GB
    size: 476.94 GiB
Partition:
  ID-1: / size: 451.59 GiB used: 352.4 GiB (78.0%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-2: /boot/efi size: 299.4 MiB used: 59.5 MiB (19.9%) fs: vfat
    dev: /dev/nvme0n1p1
Swap:
  ID-1: swap-1 type: partition size: 16.76 GiB used: 13 MiB (0.1%)
    dev: /dev/nvme0n1p3
Sensors:
  System Temperatures: cpu: 48.0 C pch: 40.0 C mobo: 40.0 C
  Fan Speeds (rpm): cpu: 0 fan-2: 0
Info:
  Memory: total: 16 GiB note: est. available: 15.23 GiB used: 2.98 GiB (19.6%)
  Processes: 293 Uptime: 5h 8m Shell: Bash inxi: 3.3.34

Mit welcher Grafikkarte lässt du denn VLC laufen? Intel oder NVidia?

Mit der Intel, das hatte ich vergessen zu posten. Hier Fehlermeldung:

[0000785c4c009670] main decoder error: buffer deadlock prevented
[0000785c4c009670] avcodec decoder: Using Intel i965 driver for Intel(R) Coffee Lake - 2.4.1 for hardware decoding
[0000785c4cc216e0] ts demux error: libdvbpsi error (PSI decoder): TS discontinuity (received 8, expected 6) for PID 18

Mit der Nvidia läuft’s aber anscheinend auch nicht:

[00007eecd4062200] main decoder error: buffer deadlock prevented
[00007eece401ecb0] main video output error: video output creation failed
[00007eecd4062200] main decoder error: failed to create video output
Failed to open VDPAU backend libvdpau_va_gl.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
Failed to open VDPAU backend libvdpau_va_gl.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu
[00007eecd4062200] main decoder error: buffer deadlock prevented
[00007eec940156a0] main video output error: video output creation failed
[00007eecd4062200] main decoder error: failed to create video output
Failed to open VDPAU backend libvdpau_va_gl.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
Failed to open VDPAU backend libvdpau_va_gl.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
$ pamac search --files libvdpau_va_gl.so
/usr/lib/vdpau/libvdpau_va_gl.so wird besessen von libvdpau-va-gl

Vielleicht hilft es das zu installieren.

Was gibt denn vainfo zurück? (Aus dem Paket libva-utils)

Nach Installation bekomme ich beim Starten des Streams untenstehende Fehler. Der Stream läuft, aber nach 30 Sekunden drehen die Lüfter wieder extrem auf, also keine Besserung.

[00007494ccc1caa0] main decoder error: buffer deadlock prevented
[00007494b4019120] main video output error: video output creation failed
[00007494ccc1caa0] main decoder error: failed to create video output
[000074949c052360] glconv_vdpau gl error: glVDPAUInitNV failed: 0x502
[00007494ccc1caa0] avcodec decoder: Using OpenGL/VAAPI backend for VDPAU for hardware decoding
[mpeg2video @ 0x7494b4014e00] Failed setup for format vdpau: hwaccel initialisation returned error.
[00007494ccc1caa0] avcodec decoder error: existing hardware acceleration cannot be reused
Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.21 (libva 2.21.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Coffee Lake - 2.4.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointEncSlice
      VAProfileVP9Profile2            : VAEntrypointVLD

Zumindest scheint nicht VLC das Problem zu sein. Ich hab’s gerade mal mit Kaffeine versucht und auch damit:

[00007c2cd0020b80] main decoder error: buffer deadlock prevented
[00007c2cb403a720] main video output error: video output creation failed
[00007c2cd0020b80] main decoder error: failed to create video output

Und MPV bzw. SMPlayer? Wild die Programme zu wechseln, ist sicherlich nicht die beste Lösung, aber zumindest bei mir hat SMPlayer VLC ersetzt.

Kannst du eine m3u Datei zum Stream erstellen ?
Beispiel von mir

cat /home/weingeist/Downloads/ARD.m3u8                                                                                                                                     
#EXTM3U
#EXTVLCOPT--http-reconnect=true
http://192.168.0.13:8001/1:0:19:283D:3FB:1:C00000:0:0:0:

mit mpv öffnen ergibt

Damit wird’s erst gar nicht abgespielt.

[ffmpeg/demuxer] rtsp: method SETUP failed: 461 Unkown
[lavf] avformat_open_input() failed
Failed to recognize file format.
Exiting... (Errors when loading file)

Schon probiert, ich sehe dann für einige Sekunden das mpv-Symbol mit Ladeindikator in der Fensterleiste, das dann aber wieder verschwindet. Öffne ich mpv vorher und ziehe die Datei ins Fenster, schließt das Programm sofort.

Geht es denn bei anderen Videos?

Wenn ich den offiziellen Stream von https://mcdn.daserste.de/daserste/de/master.m3u8 nehme, klappt das bei mir und es zeigt vaapi an. (Ich habe AMD.)

probiere es mit ARD, egal wie man dazu steht aber da klappt es definitiv. Andre Sender machen schon mal Probleme

Wie könnte das denn am Sender liegen? Es werden wohl alle h264 ausstrahlen, oder?

FTV UHD = Video Format: HEVC | H.265
ARD Alpha HD = Video Format: MPEG-4 | H.264

kann aber nur für Sat reden

Aber er spricht ja von DVB-C, nicht Sat.

Ich schätze aber, dass es gar nicht explizit darum geht, sondern die Decodierung auf der GPU fehlschlägt, egal welche Quelle.

Es muss schon irgendwie an der FritzBox bzw. DVB-C liegen. Einfach den offiziellen ARD-Link nehmen und via VLC streamen klappt wunderbar, ohne Fehlermeldung und Lüfterpusten:

[000070c36c5afcb0] adaptive demux: Changing stream format Unknown -> WebVTT
[000070c36c5afcb0] adaptive demux: Ending demuxer stream. [needrestart]
[000070c36c5afcb0] adaptive demux: Changing stream format Unknown -> Packed AAC
[000070c350242d00] mpeg4audio demux packetizer: AAC channels: 2 samplerate: 48000
[000070c36c5afcb0] adaptive demux: Changing stream format Unknown -> TS
[000070c36c602ed0] avcodec decoder: Using Intel i965 driver for Intel(R) Coffee Lake - 2.4.1 for hardware decoding

Mit der Nvidia-GPU allerdings:

[00007144805afcb0] adaptive demux: Changing stream format Unknown -> WebVTT
[00007144805afcb0] adaptive demux: Ending demuxer stream. [needrestart]
[00007144805afcb0] adaptive demux: Changing stream format Unknown -> Packed AAC
[0000714464030ec0] mpeg4audio demux packetizer: AAC channels: 2 samplerate: 48000
[00007144805afcb0] adaptive demux: Changing stream format Unknown -> TS
[000071444c05ad20] main video output error: video output creation failed
[0000714480602ed0] main decoder error: failed to create video output
Failed to open VDPAU backend libvdpau_va_gl.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden

Aber auch hier bleiben die Lüfter ruhig. Problem scheint nur aufzutreten, wenn das Ganze über die FritzBox läuft.