Beiträge von maf

    Thanks! With options -d :1 -f (in /etc/vdr/conf.avail/softdevice.conf, Debian style) and after logging in and doing

    Code
    malte@taco:~$ xhost +SI:localuser:vdr
    localuser:vdr being added to access control list

    and restarting vdr I get a full screen picture.


    I tried to simplify this a little with a configuration file /etc/gdm3/PostLogin/Default

    Code
    malte@taco:~$ cat /etc/gdm3/PostLogin/Default
    #!/bin/sh
    /usr/bin/xhost +SI:localuser:vdr
    exit 0

    But that doesn't help.


    I would like to avoid having to log in. Is there any way to grant vdr access to the X11 server other than run vdr as root as you already mentioned?

    I installed from Debian Live, so I should have whatever the default is ..

    Code
    malte@taco:~$ echo $XDG_SESSION_TYPE
    x11
    malte@taco:~$ echo $DISPLAY
    :1
    Code
    malte@taco:~# grep -i wayland /etc/gdm3/daemon.conf
    #WaylandEnable=false

    Selection on Login

    Code
      System X11 Default
    * GNOME
      GNOME Classic

    Hallo,


    ich versuche, ein VDR-Testsystem mit den Paketen für Debian Bullseye von eTobi aufzusetzen. Installiert habe ich dazu u.a. VDR 2.6.0-1~etobi1 und vdr-plugin-softhddevice 1.2.7-2. An einer PNY GeForce GT 710 ist per HDMI ein Fernseher angeschlossen, außerdem an der internen Grafikkarte per VGA ein normaler Monitor. Beim Start des Rechners wird der GNOME-Desktop auf beiden Bildschirmen angezeigt, Mein Ziel ist es, dass VDR den Fernseher exklusiv zur Bild- und Tonausgabe benutzt. Bislang habe ich aber weder Bild noch Ton:

    Code
    Dec  6 09:51:12 taco vdr: [3647] starting plugin: softhddevice
    Dec  6 09:51:12 taco vdr: audio: 'alsa' output module used
    Dec  6 09:51:12 taco vdr: audio/alsa: playback open 'default' error: Datei oder Verzeichnis nicht gefunden
    Dec  6 09:51:12 taco vdr: audio/alsa: can't open mixer 'default'
    Dec  6 09:51:12 taco vdr: audio:  44100Hz supports 0 0 0 0 0 0 0 0 channels
    Dec  6 09:51:12 taco vdr: audio:  48000Hz supports 0 0 0 0 0 0 0 0 channels
    Dec  6 09:51:12 taco vdr: audio: 192000Hz supports 0 0 0 0 0 0 0 0 channels
    Dec  6 09:51:12 taco vdr[3647]: No protocol specified
    Dec  6 09:51:12 taco vdr: video: Can't connect to X11 server on ':0.0'
    Dec  6 09:51:12 taco vdr: [softhddev] ready

    Ich habe ohne Erfolg versucht, vdr Zugriffsrechte einzuräumen:

    Code
    malte@taco:~$ xhost +SI:localuser:vdr
    localuser:vdr being added to access control list


    Auch weiß ich nicht, wie ich softhddevice sagen soll, welches der beiden Ausgabegeräte er benutzen soll, denn der X Server glaubt anscheinend, es gäbe nur einen großen Monitor:

    Code
    root@taco:~# xrandr --listmonitors
    Monitors: 1
     0: +*default 3840/1016x1200/317+0+0  default

    Meine Suche nach Lösungen hier im Forum war leider erfolglos. Nun hoffe ich auf eure Hilfe...

    Danke für den Hinweis. Beim Erstellen dieses Pakets wird in der Tag ein Paket nv-codec-headers benutzt, das es in Debian selbst nicht gibt. Das Paket libnvidia-encode1 wird jedoch nicht benutzt.


    Ich habe allerdings gewisse Vorbehalte, deb-multimedia in die Liste meine Quellarchive aufzunehmen. Zum einen gibt es Hakeleien mit der regulären Distribution. Zum anderen würde ich ein ffmpeg-nv vorziehen, das neben dem normalen ffmpeg installiert werden kann.

    Ich glaube, zumindest im Moment ist der Treiber nicht das Problem. Dessen Installation war problemlos. Debian trennt strickt freie und nicht-freie Software. Die in Debian Bullseye enthaltene Version von ffmpeg stammt aus der Komponente main. Sie benutzt keine Bibliotheken des NVIDIA-Treibers, denn der ist in der Komponente non-free enhalten, die nach einer Installation ergänzt werden muss. Ich will versuchen, ein eigenes Paket ffmpeg-nv zu erstellen, das auch die NVIDIA-Bibliotheken benutzt.

    Das Paket libnvidia-encode1 ist zusammen mit nvidia-driver installiert worden (und übrigens auch nvidia-vdpau-driver:(

    Code
    $ apt search nvenc
    ...
    libnvidia-encode1/stable,now 460.91.03-1 amd64  [Installiert,automatisch]
      NVENC Video Encoding runtime library
    ...

    Aber ffmpeg scheint nicht davon zu profitieren. Im Debian Wiki gibt es eine Seite Hardware Video Acceleration, auf der erwähnt wird, dass ffmpeg zu den Programmen gehört, die NVENC nutzen.


    Ich habe den Verdacht, dass ich eine Version von ffmpeg finden oder bauen muss, die NVENC auch wirklich nutzt (und z.B. von libnvidia-encode1 abhängt). Vielleicht nach dem Vorbild von ffmpeg-nvenc-debian. Dort wird ffmpeg/nv-codec-headers aus VLC benutzt. Leider erfordert die aktuelle Version von ffmpeg/nv-codec-headers Version 470.57.02 der NVIDIA-Treiber. Die Version in Debian Bullseye ist jedoch nur 460.91.03.

    Wohl nicht. Es gibt in Bullseye ein Paket nvidia-driver (mit Version 460.91.03-1) mit folgender Beschreibung

    Code
    This metapackage depends on the NVIDIA binary driver and libraries that provide optimized hardware acceleration of OpenGL/GLX/EGL/GLES/Vulkan applications via a direct-rendering X Server.
    ...

    Laut README im Paket wird meine GT 710 mit feature set D unterstützt. Dessen Beschreibung enthält eine Vielzahl von VDP_DECODER_PROFILE_*, aus denen ich allerdings nicht schlau werde.

    Das sieht bei mir ein bisschen anders aus:

    Code
    $ ffmpeg -hide_banner -encoders | grep nvenc
    $ ffmpeg -hide_banner -hwaccels
    Hardware acceleration methods:
    vdpau
    vaapi
    qsv
    drm
    opencl

    Also brauche ich wohl ein anderes ffmpeg, wenn ich meine Karte zum Enkodieren nutzen möchte.

    Ah, dann habe ich wohl doch etwas missverstanden. Mit "entweder/oder" meintest Du, dass ich -h264enc oder -hwaccel benutzen soll.


    Diesen Abschnitt in Wikipedia interpretiere ich so, dass nouveau VDPAU für meine GT 710 unterstützt. Im Artikel zu CUDA finde ich keinen entsprechenden Hinweis. Also werde ich es mit vdpau versuchen, bevor ich einen anderen Treiber installiere.


    Wie finde ich denn heraus, ob das standardmäßig in Debian Bullseye enthaltene ffmpeg Unterstützung für NVIDIA enthält?

    Konfiguration:


    -h264enc h264_nvenc

    -hwaccel cuvid|vdpau , also entweder/oder

    Danke. Darf ich noch mal nachfragen, damit ich besser verstehe, was ich da tue?


    Die Videodaten sind im MPEG2-Format. Die Hardwarebeschleunigung sollte also helfen. Ich vermute, -h264enc h264_nvenc bedeutet, dass nach H.264 transkodiert werden soll und zwar mit einem NVIDIA-basierten Encoder? Und mit -hwaccel gebe ich an, dass bei der Hardwarebeschleunigung entweder eine Programmschnittstelle auf Grundlage von CUDA (cuvid) oder VDPAU (vdpau) benutzt werden soll? Falls ich soweit richtig liege: Nach welchen Kriterien entscheide ich, ob ich cuvid oder vdpau angebe? Vielleicht spielt es da eine Rolle, dass Debian Bullseye sich entschieden hat, nouveau als Treiber für die Karte zu benutzen.