[Gelöst] vaapidevice - kein Bild

  • Hallo,

    nachdem ich mein Debian SID mal wieder upgedatet habe (eigentlich täglich) konnte ich meinen Desktop VDR (2.4) nicht mehr zum Laufen bekommen. Bis her hatte ich die Ausgabe immer über das softhddevice geleitet mit:

    Code
    -P'softhddevice -f -d:0.0 -v va-api -a default -w no-hw-decoder'

    Nach dem Update bekom ich aber kein Bild mehr. Kernel war jetzt neu und ffmpeg auch

    Aber jetzt compilierte das nicht mehr. Ich hab mir dann aus dem git das vaapidevice plugin geholt. Compilieren war auch kein Problem. Aber es kommt kein Bild. Nur ein grüner Bereich mit schwarzen Balken an der Seite. Man sieht noch kurz das OSD in dem grünen Bereich dann stürzt der VDR ab.

    Starten tue ich Vaapi mit:

    Code
    -P'vaapidevice -f -d:0.0 -v va-api -a default'

    wenn ich journalctl nach VAAPI greppe kommt dies herraus. Nach der letzten Zeile gibts einfach einen Neustart (watchdog) mit gleichem Ergebnis.



    Hier nochmal die relevanten Plugins mit Versionsnummern:

    Code
    mannitec02:/usr/local/src/VDR# ./vdr -V
    vdr (2.4.0/2.4.0) - The Video Disk Recorder
    streamdev-client (0.6.1-git) - VTP Streaming Client
    streamdev-server (0.6.1-git) - VDR Streaming Server
    vaapidevice (1.0.0-GITa17c110) - VA-API Output Device

    Der Vdr läüft als streaming client mit nfs - Zugriff auf die recordings.


    Fehlt mir noch irgendwas? Sind die Meldungen mit "can't..." irgendwie verdächtig? Ich habe im Moment keine Ahnung, wie ich das ganze noch einkreisen soll.


    Gruß

    msv

  • Der X-Server läuft aber schon mit Intel-Treiber?

    Wo hast Du das vaapidevice her?

    Ich hatte mit dem hier

    https://github.com/pesintta/vdr-plugin-vaapidevice

    keine Probleme, abgesehen davon, dass die Intelgrafik grottig ist im Vergleich zur nvidia-Karte.. Den Parameter -v va-api brauchte ich auch nicht.

    Wird Deine Grafikkarte denn von va-api unterstützt? Dein früherer Parameter -w no-hw-decoder irritiert mich.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Ja, der X-Server läuft schon mit dem richtigen Driver. Hier die ensprechende Stelle aus Xorg.0.log


    Das Plugin ist von der von dir zitierten Quelle.

    Die Qualität der Grafik ist nicht so relevant solange ich damit vernünftig schneiden kann. Ist eh mein Desktop und nicht der Wohnzimmer Client.

    Kann ich denn irgendwo mehr testen als "vainfo" (s.o.) laufen zu lassen? Wenn ich mal ein Xine Gui aufrufe kann ich hier auch sauber vaapi als Videodriver aufrufen.


    Der Parameter -w no-hw-decoder ist von mir wohl aus irgendwelchen ersten Tests mit dem softhddevice übrig geblieben. Damit ist der VDR jetzt aber gefühlt schon hundert Jahre gut gelaufen. Entgegen der Docu des vaapidevice gibt es diese Parameter aber anscheinend nicht mehr.


    Am meisten irritiert mich eben die Meldung über das nicht supportete VAProfile mit dem anschließenden Abbruch des VDR. Was ist das VAProfile? Und kann man das irgendwo einstellen?


    Code
    Sep 18 12:41:38 mannitec02 vdr[19688]: [19731] VAAPI-ERROR: video/vaapi: can't query entrypoints: the requested VAProfile is not supported
    Sep 18 12:41:38 mannitec02 vdr[19688]: [19731] VAAPI-ERROR: video/vaapi: can't create config 'the requested VAProfile is not supported'

    Ich habe auch mal versucht in den Plugin Parametern in der Commandline den Parameter -t zu setzen, bzw zu verändern, um mehr Info zu bekommen. Allerdings ohne Erfolg. Der Hinweis auf die misc.h hilft nicht wirklich. Was muss denn hier konkret eingegeben werden um den Log Level zu erhöhen. Oder ist das eine Absicht des Entwicklers für spätere Versionen?

  • keine Probleme, abgesehen davon, dass die Intelgrafik grottig ist im Vergleich zur nvidia-Karte..

    Wo ist denn der Unterschied zwischen nvidia und Intel?

    Ich bin vor zwei Monaten auf Intel umgestiegen. Ganaugenommen habe ich zwei Intel NUCs Im Clientbetrieb.

    Vorher stationär mit nvidia.

    Ich kann beim besten willen keinen Unterschied erkennen... Eher im Gegenteil. Meine Nvidiakarten waren immer etwas rotlastig.


    Gruß Jan

    1:Dell PoweEdge T20; Xeon E3-1225 v3; 32GB RAM; Proxmox 5.4; MLD 5.4 als VDR-Server; 2 x Cine S2;
    2:Intel NUC i3 Passiv; 4GB RAM; 120GB SSD; easyvdr 3.5 als client; Harmony Hub

    2:Intel NUC i5 Passiv; 4GB RAM; 120GB SSD; easyvdr 3.5 als client; Harmony Hub
    3:Raspberry Pi 3B; MLD

  • Vielleicht ist das bei neueren Boards verbessert worden. Bei meinem B75 Pro3-M gibt es bei SD wegen des im vaapidevice-Plugin fehlenden Deinterlacers sichtbare Kammeffekte. Und bei HD ist das Bild flauer bzw. matschiger. Bei Nvidia sehe ich jede Hautpore, bei Intel ist die Detailauflösung schlechter. Und was mir am vaapidevice nicht gefällt ist das Umschaltverhalten. Man sieht schon im OSD den Namen des neuen Senders, aber dessen Bild erscheint erst mit 1-2 s Verzögerung.

    Softhddevice hatte (auf mein Betreiben hin) den Dekoder buffer gecleart, so dass das Bild sofort gestoppt und auf Wunsch auch während des Umschaltens schwarz wurde- so wie es jeder TV und Digitalreceiver macht. Den Code hat Rolf Ahrenberg (rofafor) aber in vaapidevice entfernt und lässt da auch nicht mit sich reden.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Ein Deinterlacer gibt's aber für SD-Sender im vaapidevice-Plugin. Vermutlich liegt das schlechte Bild eher an Deiner G540 - das ist doch eine Sandy-Bridge, oder? Die wird zu alt sein.

    Bei mir scheint die Bildqualität zwischen Intel und Nvidia gleichwertig zu sein. Nur eben das Problem mit dem Spulen bei Intel. Aber dazu geht's in meinem anderen Thread demnächst wieder weiter.


    Stefan

  • Ich habe in den Einstellungen zumindest keinen gefunden. Vielleicht ist der auch einfach nicht mehr konfigurierbar.

    Ja, die G540 ist Sandy Bridge.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Vielleicht ist das bei neueren Boards verbessert worden.

    Bei Gelegenheit lohnt sich ein Test. Meine NUCs haben eine i3 bzw i5 allerdings Hashwell.

    1:Dell PoweEdge T20; Xeon E3-1225 v3; 32GB RAM; Proxmox 5.4; MLD 5.4 als VDR-Server; 2 x Cine S2;
    2:Intel NUC i3 Passiv; 4GB RAM; 120GB SSD; easyvdr 3.5 als client; Harmony Hub

    2:Intel NUC i5 Passiv; 4GB RAM; 120GB SSD; easyvdr 3.5 als client; Harmony Hub
    3:Raspberry Pi 3B; MLD

  • Hallo Leute,


    es ist ja schön, wenn ihr ein besseres oder schlechteres Bild habt.


    Ich habe gar keines und hatte gehofft, dass mir hier jemand einen Tipp geben könnte, wie ich in meiner Konstellation weiter komme. Eine Diskussion über die bessere Technik bringt mich irgendwie nicht weiter. Vielleicht könntet ihr dazu einen eigenen Thread aufmachen.


    Danke

    msv

  • Also ich wundere mich in der Ausgabe von vainfo über das fehlende VAProfileNone. Das braucht man nämlich für das VAAPI-Postprocessing. Ich gehe mal davon aus, dass daher auch diese Meldung "can't query entrypoints: the requested VAProfile is not supported" her rührt.


    Du könntest mal versuchen, ob du ein Bild kriegst, wenn du in den Plugin-Einstellungen alle Postprocessing-Filter ausschaltest (Color Balance aus, Skin Tone Enhancement 0 [oder 50, bin nicht sicher], für alle Auflösungen Deinterlace aus, Denoise und Schärfen 0 [oder 50, bin nicht sicher]). Evtl. fordert vaapi dann das VAProfileNone nicht an. Aber ich bin mir da nicht sicher (muss gleich mal im Source-Code gucken) und außerdem wäre das Bild sicher deutlich schlechter als gewohnt.


    Die eigentliche Frage ist halt: Warum fehlt das VAProfileNone hier? Kann die Karte eventuell wirklich kein Postprocessing weil sie zu alt ist?


    [Edit]: Kurz mal in den Source-Code vom vaapidevice geschaut (video.c): Eigentlich sollte bei nicht vorhandenem Postprocessing auf der Hardware einfach das Postprocessing ausgeschaltet und das Bild halt unprocessed angezeigt werden. Ich habe bei mir mal einfach in der video.c die Variable VaapiVideoProcessing hart auf 0 gesetzt und kriege immer noch ein Bild.

    Andere Frage: Um welche Empfangsart geht es und ist es SD oder HD? Davon hängt nämlich auch der Codec ab.

  • Mir ist noch etwas eingefallen, was du testen könntest. Interessant wäre zu wissen, ob den vaapi noch mit anderen Programmen funktioniert. Gut zum Test eignet sich der Video Player "mpv", da er vaapi exzellent unterstützt. Daher wäre es interessant, ob (bei installiertem mpv) folgendes Kommando ein Video korrekt abspielt:

    Code
    mpv --hwdec=vaapi --vo=opengl /path/to/my/video.mpg
  • Hier noch ein paar Daten zu meiner Umgebung:



    Also so alt ist der Chipsatz ja nun auch nicht.

    und hier die Console Ausgabe von "mpv" (Bild und Ton super!)


    Also vaapi scheint auf jeden Fall zu funktionieren.


    Das Problem scheint unabhängig zu sein vom SD oder HD Material. ich hab die setup.conf mit unterschiedlichen Kanälen gestartet bei gleichem Verhalten.

  • Also es wird dran liegen, dass es bei dir das "VAProfileNone" nicht gibt, warum auch immer das so ist. Ich habe bei mir nämlich die video.c so gepatched, dass er immer den Pfad läuft, als wäre dieses Profil nicht da, und dann kommt es zu genau dem von dir beschriebenen Verhalten, dass sich vdr beendet. Ich denke, das ist ein Bug und schaue mir das gerade etwas genauer an.

  • Also den Effekt, dass sich VDR mit vaapidevice beendet, wenn es kein Profil "VAProfileNone" mit EntryPoint "VAEntrypointVideoProc" gibt, kann man verhindern, indem man in der video.c vom vaapidevice-Plugin die Zeile 2654 von

    Code
    Fatal("video/vaapi: can't create config '%s'", vaErrorStr(status));

    ändert in

    Code
    Error("video/vaapi: can't create config '%s'", vaErrorStr(status));

    Dann müsste es jedenfalls ein Bild geben. In wieweit das Bild (vor allem bei interlaced und fehlendem De-Interlacer) qualitativ akzeptabel ist, muss man dann sehen.


    Die andere Frage ist: Warum fehlt hier überhaupt der VAEntrypointVideoProc? Der Haswell müsste das doch eigentlich haben, oder doch nicht?

  • Ok, hab nochmal rum gespielt. Es liegt wohl tatsächlich an dem fehlenden Profil. Das wird wohl in Debian geliefert durch den i965-va-driver. Beim letzten update gabs diesen Kommentar :


    Ich hab dann mal die entsprechenden shader Driver (i965-va-driver-shaders) installiert und siehe da, es ward Licht. Nur ist es absolut nicht lipsync. Aber da muß ich wohl noch weiter experimentieren. Vielleich muß ich doch nochmal das ursprüngliche softhddevice Pluging aktivieren.


    Trotzdem schon mal vielen Dank für die Hilfreichen Tipps.


    gruß

    msv

  • das ist dann aber ein Armutszeugnis für das vaapidevice-Plugin!

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!