vdr-sxfe ruckelt

  • Hallo, allerseits.


    Ich habe das sonderbare Phänomen, dass vdr-sxfe beim Wiedergeben eines DVB-S-Streams aus vdr immer wieder kurz stockt (unter einer Sekunde). Das Verrückte ist, dass der Rechner nur faul herumlungert. Das System ist


    Athlon 3200+ mit PowerNow (cpu ist praktisch immer auf 1000MHz).
    2GB DDR-Ram (leider nur mit 266 auf 7-3-3-2)
    Nvidia Geforce 4 MX 4000
    2 IDE-Festplatten mit raid1 (system) und raid0 (video-aufnahmen) im UDMA5-mode


    vdr-sxfe läuft mit -V xxmc -A spdif.


    Die Systemauslastung ist bei 1000MHz (halbe CPU-Geschwindigkeit) nur zwischen 1% und 5% (mindestens 95% idle!)


    Ganz offensichtlich läuft die ganze mpeg-Arbeit nur über die Nvidia-Hardware-Beschleunigung. Trotz der 95%-idle stockt die Videoausgabe öfter.


    Ich habe schon im Kernel alle drei Varianten des preemption model probiert "no forced preemption(server)" scheint am wenigsten Ruckler zu produzieren, bei "voluntary (desktop)" und "preemptible (low-latency desktop)" habe ich den Eindruck von häufigeren Rucklern. Ich habe auch die verschiedenen timer frequencies 100, 250 und 1000 ausprobiert, hier scheint die beste Einstellung 100 zu sein, bei 1000 sind auch wieder mehr Ruckler.


    Ich habe auch im xorg.conf die Nvidia-Option "UseEvents" mit true und false probiert. Das macht keinen wirklichen Unterschied (weder bei der CPU-Auslastung noch beim Ruckeln).


    Bei allen Varianten (ja, ich habe wirklich alle möglichen Kombinationen aus preemption model, timer, UseEvents und auch den io-schedulers anticipatory, deadline und cfq ausprobiert).


    Ruckler treten auch auf, wenn ich VDR-Aufnahmen abspiele, da scheint der cfq-scheduler das beste Resultat zu liefern, aber bei einem raid0-Array mit DMA (hdparm -t liefert 90MB/sec, das KANN doch gar nicht ruckeln!).


    Auch PowerNow habe ich mal ausgestellt (CPU läuft durchgehend auf 2000MHz), um auszuschließen, dass das Frequenz-Schalten das Problem sein könnte, aber auch bei voller CPU-Geschwindigkeit ruckelt es.


    Insgesamt ist die Performance ja begeisternd, der vdr-sxfe läuft immer nur bei 1-3%, die Nvidia-Karte übernimmt also die ganze Video-Arbeit. Aber ich hätte ja gar nichts dagegen, dass die CPU mehr macht, wenn es dann nicht mehr ruckelt!


    Wenn ich im Firefox eine Seite lade, hält die Video-Darstellung von vdr-sxfe ebenfalls kurz an. Ich dachte ja, dass das bei kernel timer 1000Hz und low-latency desktop preemption nicht passieren dürfte. Erstaunlicherweise ist das Stocken bei kernel timer 100Hz und "no preemption" kürzer.


    Hat jemand eine Idee, wo man noch drehen kann, um diese kurzen Aussetzer in Griff zu kriegen?


    dideldum


    P.S.: ganz vergessen, das System ist gentoo mit kernel 2.6.18-r6, deshalb der thread hier unter gentoo...

  • Zitat

    Original von dideldum
    Hat jemand eine Idee, wo man noch drehen kann, um diese kurzen Aussetzer in Griff zu kriegen?


    Andere Ausgabemethode wählen? :mua


    Na gut, mal was konstruktives: Wird dein Fernseher/Monitor mit einer durch 25 teilbaren Bildwiederholfrequenz angesteuert? Da wäre evtl. noch was zu holen. Ich selber habe mit xineliboutput *nie* ein wirklich ruckelfreies Bild hinbekommen.


    Gruß,
    Holger

  • was die im Forum vielzitierten 'Ruckler' betrifft, habe ich mir folgende Meinung
    gebildet (lasse mich aber gerne vom Gegenteil ueberzeugen :D).


    Bei einem traditionellen Roehren-TV, der ueber den eingebauten Tuner laeuft,
    wird der auf dem Bildschirm auftreffende Elektronenstrahl direkt vom Sender
    gesteuert. Es besteht deswegen insbesondere eine vollkommene Synchronisation
    der Bildwiederholfrequenz am Schirm mit dem ausgestrahlten Bildmaterial.


    Dasselbe gilt auch fuer FF-Loesungen, da deren Ausgangssignale (RGB,
    Composite Video etc.) ebenfalls sendersynchron gehalten werden koennen.


    Bei den VGA, DVI etc. Loesungen gibt es diese Synchronisation nicht. Die dort
    angeschlossenen Displays laufen mit fest eingestellten Bildwiederholfrequenzen
    (z.B. 50Hz oder 60Hz). Selbst wenn die Bildwiederholrate am Display
    ein ganzzahliges Vielfaches von 25Hz ist, wird es immer Situationen geben,
    in denen der (freilaufende) Refresh am Monitor einen Tick zu frueh oder zu
    spaet kommt in Relation zum naechsten Vollbild des Filmes.
    Es kommt zum Ruckeln. Bei Kameraschwenks oder Laufschriften besonders gut
    zu beobachten.


    Bei Wiedergabe von Aufzeichnungen hat man hier sogar eine Chance. Man kann
    den umgekehrten Weg wie oben gehen und die Wiedergabegeschwindigkeit des
    Filmes an die exakte VGA-Framerate anpassen (d.h. bildsynchron machen)
    Ich glaube, der Mplayer hat sogar so eine Option.


    Bei Live Sendungen ist dieser Trick natuerlich nicht anwendbar.


    Aussetzer im ~ 1/4 (?) Sekundenbereich sind allerdings etwas sehr lang:


    Zitat

    Wiedergeben eines DVB-S-Streams aus vdr immer wieder kurz stockt (unter einer Sekunde).


    Die haben moeglichweise noch eine ganz andere Ursache.

  • Hurra, endlich hat sich mal jemand meines Problems zumindest gedanklich angenommen.


    Danke Euch beiden!


    Ehrlich gesagt wüsste ich nicht, wie ich die Ausgabefrequenz positiv beeinflusssen könnte, xvidtune zeigt für den TV-Out (Screen :0.1) bereits eine modeline mit 50Hz. Das ist doch für den TV optimal, oder?


    Ich habe aber noch was anderes probiert. Ich hatte die ganze Zeit die Video-Ausgabe mit xxmc gemacht, weil ich dachte, das ist ja wohl das beste, alles hardware-unterstützt.


    Nach einem zwischenzeitlichen Wechsel zu ATI (was aber nur das obere halbe Bild im Overlay-Modus auf TV bringt (Sparkie hat mir dazu schon was gesagt)), habe ich festgestellt, dass ATI die Hardware-Beschleunigung mit xv macht. Jetzt habe ich wieder die Nvidia-Karte drin, lasse xvdr-sxfe aber nicht mehr mit -V xxmc, sondern mit -V xv laufen. Die CPU ist jetzt zwar mit 15-20% am Arbeiten (vorher 1-3%), aber das Bild ist ruckelfrei. Die 15-20% könnten auch noch am Deinterlacer "ScalerBob" liegen, weil der "Use vo_out" (oder so ähnlich, der hardware-unterstützte jedenfalls) immer noch verpixelte Zeilen bei den Bloomberg-Laufschriften lieferte.


    Also mit -V xv und ScalerBob (cheap=false!) ist das Bild jetzt ruckelfrei und perfekt.

Jetzt mitmachen!

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