HW-Beschleunigung für h.264 mit VDPAU und Linux

  • duc


    Ich gebe Dir generell Recht.


    Nur muss man auch beachten, das VDPAU noch in den Kinderschuhen steckt, und es durchaus sein kann, dass Bugs mit einer neunen Version ausgemerzt sein können, obwohl dies nicht offiziell beworben wird. Da in deinem Fall wahrscheinlich sowieso der Treiber etc. hätte mal neu installiert werden müssen, denke ich zumindest, sollte gleich ein Test mit dem neuen erfolgen, damit Andere das auf dem gleichen Stand reproduzieren können.


    Mit meiner Graka habe ich dieses Problem zumindest nicht.



    Ob VDPAU im mplayer mit comiliert wurde kannst Du an der Datei "config.mak" sehen. Einfach nach "CONFIG_VDPAU" suchen. Wenn da "Yes" steht wurde VDPAU zumindest mittels configure-skript erkannt. Vielleicht auch die entsprechende Stelle in diesem Script und "configure.log" mal ansehen, wie VDPAU verifiziert wird. Vielleicht klapt es sogar, wenn nach dem configure-Lauf "config.mak" manipuliert wird.


    Nur würde diese Theorie der Tatsache widersprechen, dass VDPAU bei den unterstützen Treibern angezeigt wird. Vielleicht werden die libs nicht gefunden ???? Dann könnte eventuell ldconfig helfen ?!?!?


    Gruß


    Erik

    OpenSuse 11.0
    Intel Core 2 Duo E8500, GeForce 8500 GT, 4GB RAM
    Röhren TV 16:9 (Angeschlossen über S-Video)
    AV-Verstärker (Denon AVC-A1HD)
    Full-HD Beamer (Angeschlossen über HDMI)

    The post was edited 1 time, last by hddummy ().

  • jetzt hab ich den neuen treiber 180.11 installiert und den rechner gebootet.
    danach apt-get build-dep mplayer (hatte ich vorher auch schon, aber egal nochmal). dann in /usr/local/src/mplayer-vdpau-3139462 das verzeichnis mplayer-vdpau zur sicherheit gelöscht und das script checkout-patch-build.sh nochmal laufen lassen. ist alles fehlerfrei durchgelaufen, aber genützt hat es nichts.


    alles, aber keinder davon:


    ffmpeg12vdpau
    ffh264vdpau
    ffwmv3vdpau
    ffvc1vdpau


    ich versteh das nicht. die sourcen wurden sauber gepatcht, configure mit --enable-vdpau gestartet, der kompiler meckert nicht und trotzdem werden die codecs nicht eingebaut. das output modul hingegen schon und das funktioniert auch.
    kann es vielleicht an der kernel version (2.6.25.4 easyvdr) oder der gcc version (4.1.2) liegen? die hardware wird ja angeblich unterstützt, so steht es zumindest in den veröffentlichungen von nvidia. ich hab mir das board extra deshalb gekauft...

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

  • Welcher Wert wird "CONFIG_VDPAU" im config.mak nach configure-Lauf zugewiesen.
    Vielleicht den "make" im checkout...-skript auskomentieren und bevor das "make" von Hand ausgeführt wird den "CONFIG_VDPAU" auf "Yes" setzten.


    Das würde auf einem Fehler im configure-script Hinweisen. Beim configure-skript wird oft ein kleines mini c-Programm übersetzt. Es könnte daher auch mit der compiler-Version zusammen hängen. Meine gcc-version ist 4.3.2 auf einem OpenSuse 11.0.


    Meist wird mit dem --enable-... nur als "Wunsch" interpretiert. Wenn beim Test festgestellt wird, dass diese Option - aus was für Gründen auch immer - nicht positiv bewertet werden kann, wird die Option zurückgesetzt. Dies hängt aber vom configure-skript ab, wie damit umgegangen wird. Daher muss die Option --enable-vdpau nicht auch automatisch bedeuten, dass der "Wunsch" auch angenommen wird. Dies kann man, wie bereits erwähnt in der Datei "config.mak" nach sehen.

    OpenSuse 11.0
    Intel Core 2 Duo E8500, GeForce 8500 GT, 4GB RAM
    Röhren TV 16:9 (Angeschlossen über S-Video)
    AV-Verstärker (Denon AVC-A1HD)
    Full-HD Beamer (Angeschlossen über HDMI)

  • Quote

    Original von duc
    jetzt hab ich den neuen treiber 180.11 installiert und den rechner gebootet.
    danach apt-get build-dep mplayer (hatte ich vorher auch schon, aber egal nochmal)


    Das wirst Du regelmäßig wiederholen müssen, da nach jedem aptitude update / upgrade Lauf die Pakete
    wieder 'raus fliegen - es sei denn, Du installierst sie explizit. Ansonsten bin ich etwas ratlos. Hier unter
    Ubuntu 8.10 hat es geklappt:

    Wie hddummy bereits anregte, schau' Dir mal

    Code
    1. kilroy:/usr/local/src/mplayer-vdpau-3139462/mplayer-vdpau$ grep -i vdpau config.mak
    2. EXTRALIBS_MPLAYER = -ldirectfb -lXext -lX11 -lpthread -lXv -lvdpau -lXinerama -lXxf86vm -lXxf86dga -lGL -ldl -lggi -laa -lcaca -lcucul -lvga -lSDL -laudio -lXt -lartsc -lesd -laudiofile -lpulse -ljack -lopenal -lfaac -lmp3lame
    3. VO_SRCS = vo_tga.c vo_md5sum.c vo_yuv4mpeg.c vo_directfb2.c vo_dfbmga.c x11_common.c vo_x11.c vo_xover.c vo_xv.c vo_vdpau.c vo_dga.c vo_gl.c vo_gl2.c gl_common.c vo_cvidix.c vo_xvidix.c vo_ggi.c vo_aa.c vo_caca.c vo_svga.c vo_fbdev.c vo_fbdev2.c vo_png.c vo_jpeg.c vo_pnm.c vo_gif89a.c vo_sdl.c vo_dxr3.c vo_v4l2.c
    4. CONFIG_VDPAU = yes
    5. CONFIG_H264_VDPAU_DECODER=yes
    6. CONFIG_MPEG_VDPAU_DECODER=yes
    7. CONFIG_VC1_VDPAU_DECODER=yes
    8. CONFIG_WMV3_VDPAU_DECODER=yes

    an.

  • ja da hab ich zuerst nachgesehen. hier ein auszug der config.mak:

    Code
    1. easyVDR:/usr/local/src/mplayer-vdpau-3139462/mplayer-vdpau# grep -i vdpau config.mak
    2. EXTRALIBS_MPLAYER = -ldirectfb -lXext -lX11 -lpthread -lXss -lXv -lvdpau -lXinerama -lXxf86vm -lXxf86dga -lGL -ldl -laa -lcaca -lcucul -lvga -lSDL -lesd -laudiofile -lm -lfaac -lmp3lame
    3. VO_SRCS = vo_tga.c vo_md5sum.c vo_yuv4mpeg.c vo_directfb2.c vo_dfbmga.c x11_common.c vo_x11.c vo_xover.c vo_xv.c vo_vdpau.c vo_dga.c vo_gl.c vo_gl2.c gl_common.c vo_cvidix.c vo_xvidix.c vo_aa.c vo_caca.c vo_svga.c vo_fbdev.c vo_fbdev2.c vo_png.c vo_jpeg.c vo_pnm.c vo_gif89a.c vo_sdl.c vo_dxr3.c vo_ivtv.c
    4. CONFIG_VDPAU = yes
    5. CONFIG_H264_VDPAU_DECODER=yes
    6. CONFIG_MPEG_VDPAU_DECODER=yes
    7. CONFIG_VC1_VDPAU_DECODER=yes
    8. CONFIG_WMV3_VDPAU_DECODER=yes


    da fällt mir ein, bevor ich easyvdr auf dem rechner installiert habe, hatte ich auch ubuntu 8.10 drauf. da hats auch nicht funktioniert.

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

    The post was edited 3 times, last by duc ().

  • duc


    Wieviel RAM hat die GPU ? Ich weiß nicht mehr wo das gelesen hatte, aber ich meine, dass Du z.Zt. mindestens 512MB GPU RAM brauchts. Ich meine es würde auch Shared Memory reichen. Das müsste dann im BIOS zugeteilt werden.

    OpenSuse 11.0
    Intel Core 2 Duo E8500, GeForce 8500 GT, 4GB RAM
    Röhren TV 16:9 (Angeschlossen über S-Video)
    AV-Verstärker (Denon AVC-A1HD)
    Full-HD Beamer (Angeschlossen über HDMI)

  • was heisst sicher? ich kann nur das wiedergeben, was nvidia schreibt:


    Motherboard GPUs:
    GeForce 9400
    GeForce 9300
    GeForce 9100
    GeForce 8300
    GeForce 8200


    allerdings hat die gpu nur 256mb shared memory. wenns also wirklich nur mit 512mb geht, siehts schlecht aus :-(
    blöd, ich hab mir das asus m3n78 extra aus dem grund gekauft.


    aber prüft der compiler wirklich die hardware? ich hätte jetzt erwartet, dass es wenigstens übersetzt wird. obs dann läuft ist ja wieder ne andere sache.
    zum testen werd ich mir mal ne graka ausleihen, mit der es definitiv geht.

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

  • Der Compiler prüft generell nicht die HW.


    Der Compiler wird im configure-script nur verwendet, um herauszufinden, ob sich diese mini c-programm grundsätzlich übersetzten lässt. Ein Fehlschlagen kann auf Compiler-Probleme, ein Fehlen der libs oder header-Dateien, Schnittstellen problem (z.B. bei neuer Version), etc. deuten.
    Jenachdem werden diese Programme nach erfolgreichen Übersetzvorgang auch noch ausgeführt.


    In deinem Fall scheint dies eben nicht das Problem zu sein, sonst wäre VDPAU im "config.mak" nicht mit "yes" beantwortet worden.


    In deinem Fall wird die VDPAU nicht vom mplayer angezeigt. Ich gehe aber davon aus, dass VDPAU im mplayer mit drin ist, sonst hättest Du einen Fehler beim compilieren gehabt, das laut config.mak VDPAU mit integriert wird. Ich hab das jetzt mal mit meinem Notebook ausprobiert, welche keine VDPAU HW hat.
    Mplayer beinhaltet VDPAU-Unterstützung.


    Quote

    cat mplayer | grep -i VDPAU



    Wenn dann


    Quote

    Übereinstimmungen in Binärdatei (Standardeingabe).


    oder vergleichbares erscheint, wurde VDPAU mit compiliert.


    Ich gehe davon aus, das mplayer z.B. beim Start überprüft, welche Codecs (bzw. HW-Beschleunigung) mit der vorhandenen HW funktioniert.


    Hier hab ich noch mal einen Hinweis gefunden bzgl. 512 MB:


    http://www.nvnews.net/vbulletin/showpost.php?p=1859121&postcount=200


    Kannst Du wirklich nicht auf 512MB im BIOS umstellen ?

    OpenSuse 11.0
    Intel Core 2 Duo E8500, GeForce 8500 GT, 4GB RAM
    Röhren TV 16:9 (Angeschlossen über S-Video)
    AV-Verstärker (Denon AVC-A1HD)
    Full-HD Beamer (Angeschlossen über HDMI)

    The post was edited 2 times, last by hddummy ().

  • ok, da kommen wir der sache schon näher.
    cat mplayer | grep -i VDPAU
    muss ich heute abend mal ausprobieren.
    bei mplayer -vc help erscheinen die vdpau codecs jedenfalls nicht.
    was gibt mplayer -vc help | grep vdpau denn bei deinem notebook aus?


    vdpau als ausgabe device geht ja immerhin, mit -vo vdpau kann ich den mplayer ja starten.


    hab heut früh im maotherboard handbuch nachgeschaut, da steh max 256mb shared memory. im bios habe ich aber auch keine einstellmöglichkeit dafür.
    wenns wirklich an der hardware liegt, wär das auch kein beinbruch, ne 8400 GS mit 512MB kostet 35 euro oder gleich ne 9400 GT mit 1024MB für 55 euro, beide passiv gekühlt. bevor ich sowas bestelle, will ich aber sicher gehen, dass vdpau dann auch wirklich läuft.


    nachtrag, hab mir grad mal das xorg log file angeschaut:
    (II) NVIDIA(0): NVIDIA GPU GeForce 8200 (C77) at PCI:2:0:0 (GPU-0)
    (--) NVIDIA(0): Memory: 524288 kBytes


    seltsam, weil im mainboard handbuch steht 256 mb max.

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

    The post was edited 1 time, last by duc ().

  • Quote

    Original von duc
    nachtrag, hab mir grad mal das xorg log file angeschaut:
    (II) NVIDIA(0): NVIDIA GPU GeForce 8200 (C77) at PCI:2:0:0 (GPU-0)
    (--) NVIDIA(0): Memory: 524288 kBytes


    seltsam, weil im mainboard handbuch steht 256 mb max.


    hi duc,


    ist mir auch schon aufgefallen - hatte eine NVIDIA 8500GT (separate GraKa) im board mit 256MB, das Xorg.0.log zeigte ebenfalls 524288 kBytes .. :schiel


    gruß, ciax

  • Hi,


    ich verfolge das Thema um VDPAU schon die ganze Zeit gespannt. Ab Monatag werde ich dann auch Zeit haben es an eigener Hardware zu Testen. Ich habe allerdings eine "MSI NX8500GT-TD256EH/D2, NVIDIA 8500GT, 256MB, PCI-Express". Ich hatte bisher gedacht ich hätte richtig Glück gehabt als ich mir diese Karte im April zugelegt habe. Jetzt lese ich hier 256MB sind zu wenig, das wäre ja echt schade.


    Testen werde ich es auf jeden Fall, schöner wäre wenn mir jemand sagen könnte das es mit einer externen Graka und 256MB geht. Ich werde jedenfalls berichten was bei mir passiert.


    Gruß
    Mucki


  • Das war die Information, die mir noch fehlte um mich für mein neues Board
    entscheiden zu können. Dann wird es wohl doch das ECS GF8200A werden.
    Das hätte schiefgehen können, danke für den Hinweis.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Quote

    Original von gda


    Das war die Information, die mir noch fehlte um mich für mein neues Board
    entscheiden zu können. Dann wird es wohl doch das ECS GF8200A werden.
    Das hätte schiefgehen können, danke für den Hinweis.


    Gerald


    hi, hmmm - verstehe ich nicht .. das board hat doch genau den NVIDIA GeForce 8200 als GPU drauf. lt. NVidia sollte PureVideo damit funktionieren - "hddummy" hat in einem post schon dieses dokument aufgelistet, indem die funktionen bzgl. PureVideo der einzelnen chipsätze aufgeführt sind: http://www.nvidia.com/object/IO_43029.html


    die aussage aus dem post von oben, daß 256MB zu wenig wären, stammt doch nur von einem user im NV News Forum und wurde auch nicht bestätigt .. ob das generell zutrifft, wage ich zu bezweifeln. besser wissen tut man's natürlich, wenn man's selbst ausprobiert .. ich hab hier 'nur' eine 9400GT. :jb


    gruß, ciax

    Lascala LC17 - tribute to viking ;o) + atric IR / SoC ASUS J3455M-E / OctopusNet S4 / yavdr-(testing) vdr / output: graphTFT-fe via 6.4" TFT & DVB-S/S2 via FullHD / NVidia GT1030 passiv

    The post was edited 1 time, last by ciax ().

  • Quote

    Original von hampelratte
    Dass man >= 512 MB Grafikspeicher braucht, ist eine Ente.Also jetzt nicht unnötig viel Kohle für das Doppelte an Speicher verbraten.


    Hatte ich auch nicht vor, das ECS-Board ist das preiswerteste Board und wegen 256MB mehr Grafikspeicher kaufe ich nicht unbedingt mehr RAM.


    Wenn es nur eine Ente ist, dann brauche ich mir ja keine Sorgen machen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • duc


    ich habe mir nochmal alles über dein Problem durchgelesen. Ich habe eine
    Idee woran es liegen könnte. Allerdings kann ich es nicht nachprüfen,
    weil ich im Moment weder die Hardware noch die Software zur Verfügung
    habe, also nicht hauen wenn es nicht stimmt.
    Für mich sieht es so aus, als wenn du den mplayer richtig gepatched und
    compiliert, aber nicht richtig installiert hast. Ich denke du benutzt den richtigen
    mplayer, deswegen geht auch -vo vdpau, aber dein mplayer greift auf ein
    Verzeichnis mit den alten codecs zu. Du hast wahrscheinlich die gepatchten
    codecs gar nicht, oder in ein falsches Verzeichnis installiert. Du kannst ja mal
    mit strace nachsehen woher der mplayer seine codecs her nimmt und prüfen
    ob dort die neuen codecs drinstehen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

    The post was edited 2 times, last by gda ().

  • das klingt gut, darauf bin ich überhaupt nicht gekommen, da ich mplayer ja direkt aus dem verzeichnis aufgerufen habe. wenn aber wie du sagst mplayer seine codecs sich irgendwo anders herholt, dann wärs klar.
    ich hab ja auch nur ein make und kein make install gemacht.
    danke für den tip, das werd ich heut abend gleich mal ausprobieren.

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

  • Quote

    Original von duc
    ich hab ja auch nur ein make und kein make install gemacht.


    Genau das hatte ich vermutet. Zum testen ist das "make install" ja auch eher
    kontraproduktiv. Ich vermute mal, dass man dem mplayer auch irgendwie über
    eine Environment-Variable den Pfad zu den codecs mitteilen kann, jedenfalls
    würde ich das so machen, aber danach musst du selber suchen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Quote

    Original von gda
    Du kannst ja mal
    mit strace nachsehen woher der mplayer seine codecs her nimmt und prüfen
    ob dort die neuen codecs drinstehen.


    Gerald


    würd ich gerne mal probieren, wie genau muss ich das machen?
    bin zwar mittlerweile ziemlich fit was linux und vdr angeht, aber alles weiss ich auch noch nicht ;-)

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700