Out of Memory mit vdr-burn-0.1.0-pre2

  • Hallo Alle zusammen,
    ich habe vor ein paar Tagen vdr-1.3.40 und das Burn-Plugin in der Version 0.1.0-pre2 installiert.
    Bis heute lief alles ok. Leider wollte ich dann 4 Folgen der Lieblingsserie meiner Frau als Image erstellen, und erhielt im Log den Fehler:


    STAT: VOBU 32 at 9MB, 1 PGCS


    20 Mbytes of 1548 readOut of memory!


    Ich habe in meinem VDR 256MB RAM und da ich per NFS boote, keine Swap Partition...


    Und hier das Problem...
    Die vier Folgen sind zusammen knapp 5.8GB groß. Deswegen startete das vdrburn-dvd.sh Script als erstes einmal requant, und zwar vier mal (für jede Folge eins...). Dumm nur, dass jeder dieser Prozesse mindestens 32MB brauchte. VDR lief mit ein paar Plugins bei knapp 60MB und ein paar andere Programme wollten auch noch etwas RAM.


    Da wurde es ein bischen knapp. :(


    Ich weiß dass 256MB RAM nicht die Welt sind, aber für eine STB sollte es alle mal ausreichen.
    Zum Anderen verstehe ich nicht warum ich 4 requant Prozesse gleichzeitig laufen lassen muss. Selbst wenn eine lokale Platte angeschlossen wär, wäre das ganze nicht wirklich schneller... oder doch?
    Gibt es außer einem RAM-Upgrade eine Möglichkeit das Ganze vielleicht doch zum Laufen zu bekommen?


    Vielen Dank im Voraus.
    Jarod

    Gehäuse: Intertech 4U 4416, Board: Supermicro X11SAE; Kathrein EXIP418; OS: Ubuntu 18.04; Plugins: xineliboutput, satip, burn, femon, live, streamdev-server, text2skin:anthra-1920

    2x RPI2/3; Plugins: rpihddevice; videodir via NFS


  • Irgendwie habe ich befürchtet dass es dazu kommen würde..


    Zur Erklärung wie es dazu kommt:
    Um genau zu sein laufen nicht alle Prozesse parallel. Sie werden nur parallel gestartet, dann öffnet dvdauthor die Fifos nacheinander und arbeitet die Videos komplett ab bevor es das nächste anfängt. Dummerweise benötigen die Prozesse in der Pipe vorab ihren Speicher...


    Ich werde morgen mal sehen wie ich die Prozessstruktur umgekrempelt bekomme um dvdauthor die Files nacheinander anzugeben, ohne die Pipe aufgeben zu müssen...

  • LordJaxom:


    Gibt es hier schon eine Lösung von dir zum burn-Plugin?


    Bei mir bleibt mit burn-0.1.0-pre2 immer die Konvertierung stehen, sobald ich soviel auf eine DVD quetschen will, dass das requatisieren notwendig wird. DVD erstellen ohne requant geht problemlos.


    Ich habe ebenfalls nur 128 MB RAM.


    Viele Grüße
    TeeRose

    Hardware: Hauppauge DVB-S 1.3 FF, TT DVB-S Budget S1102, MSI-6737, P4 1.4 GHz, 386 MB Ram, 250 GB, IR-Einschalter Rev.4, Hauseinspeisung per AVM2
    Software: Debian Etch 4.0, Kernel 2.6.26.5, vdr 1.4.7, DVB-Treiber aus Kernel, Firmware 2623, LIRC 0.8.4pre1, nvram-wakeup 0.97
    Plugins: epgsearch, burn, osdteletext, streamdev, text2skin+Enigma, osdpip, femon, timeline, image

  • Hallo,
    ich habe jetzt mal von 128Mb auf 640MH Hauptspeicher aufgerüstet. Allerdings bricht der burn-Vorgang immer noch ab, wenn ich z.B. wie hier 5 Star Trek Folgen auf eine DVD bringen will und burn das Requantsieren aufruft:



    Die Prozesse rund um burn hängen, sind aber noch da:


    Woran kann das liegen?


    Viele Grüße
    TeeRose

    Hardware: Hauppauge DVB-S 1.3 FF, TT DVB-S Budget S1102, MSI-6737, P4 1.4 GHz, 386 MB Ram, 250 GB, IR-Einschalter Rev.4, Hauseinspeisung per AVM2
    Software: Debian Etch 4.0, Kernel 2.6.26.5, vdr 1.4.7, DVB-Treiber aus Kernel, Firmware 2623, LIRC 0.8.4pre1, nvram-wakeup 0.97
    Plugins: epgsearch, burn, osdteletext, streamdev, text2skin+Enigma, osdpip, femon, timeline, image

    Einmal editiert, zuletzt von TeeRose ()

  • Hallo,


    ich hatte mit burn-0.1.0-pre auch Probleme.


    Ich weiß nicht ob das so schon hilft:


    (1) Der C-Code ermittelte - falls er requantisieren soll - IMMER Faktor 1,12
    Das habe ich im C-Code ausgebessert, aber ich kam noch nicht dazu
    nachzusehen, woran das lag (mit gcc 4)


    (2) Das nachfolgend laufende requant-Programm erwartete den Faktor
    in englischer (1-PUNKT-1231231) Form, das Plugin hat ihn in deutscher
    Form geliefert (1-KOMMA-1231231). Die Nachkommastellen wurden also
    grundsätzlich weggeworfen. Ich habe die Requant-Source dann so geändert,
    dass es sowohl Deutsch als auch Englisch kann.


    (3) Das "Hängenbleiben" habe ich auch ein paar mal beobachtet. Da dass aber
    nur passiert ist, während ich herumprobiert habe und es dann später nicht
    mehr auftrat, habe ich mich nicht weiter darum gekümmert.


    Aus Zeitmangel konnte ich leider noch nicht tiefer schürfen...


    MfG - HjW

    VDR-1.3.39 - Kernel-2.6.13 - xine - nova-s-plus -Astra/Hotbird

  • Zitat

    Original von hjwd
    (2) Das nachfolgend laufende requant-Programm erwartete den Faktor
    in englischer (1-PUNKT-1231231) Form, das Plugin hat ihn in deutscher
    Form geliefert (1-KOMMA-1231231). Die Nachkommastellen wurden also
    grundsätzlich weggeworfen.


    Folgenden Patch im burn-Verzeichnis anwenden, dann stimmt's mit dem . und ,



    Bitte die C-Profis nochmal prüfen ob da alles korrekt ge-free-ed wird, ich hab das nur ziemlich dreist aus dem glibc-Handbuch kopiert: http://www.gnu.org/software/li…e.html#Setting-the-Locale

  • Zitat

    Original von hjwd
    (1) Der C-Code ermittelte - falls er requantisieren soll - IMMER Faktor 1,12
    Das habe ich im C-Code ausgebessert, aber ich kam noch nicht dazu
    nachzusehen, woran das lag (mit gcc 4)


    Postest Du mal, was Du gemacht hast?
    Ich hab dem Plugin gerade sehr genau auf die Finger geschaut, bei mir wird bei einer (leicht zu großen) Zusammenstellung ein Faktor von 1.000802069 + 0.12 ermittelt, also nicht genau 1.12


    Allerdings ist das dann bei der Übergabe an's Environment dann 1.1200000, das stimmt...



    EDIT:
    Habs gefunden:

    Code
    mEnvironment.Put(Name, cString::sprintf("%f", Value));


    Das %f beschränkt auf drei Nachkommastellen.


    Absicht?

  • Zitat


    Postest Du mal, was Du gemacht hast?
    Ich hab dem Plugin gerade sehr genau auf die Finger geschaut, bei mir wird bei einer (leicht zu großen) Zusammenstellung ein Faktor von 1.000802069 + 0.12 ermittelt, also nicht genau 1.12


    Allerdings ist das dann bei der Übergabe an's Environment dann 1.1200000, da stimmt...


    Hab die Source leider zu Hause. Kanns heute abend mal posten. Ich wollte für meine
    Frau schnell was brennen, was nicht auf eine Scheibe ging. Ich konnte nicht auf
    Anhieb erkennen, warum der existente Code das verkehrt macht und hab's dann
    einfach schnell gehackt.


    Ansonsten klappt das bei mir recht gut, danke!


    MfG - HjW

    VDR-1.3.39 - Kernel-2.6.13 - xine - nova-s-plus -Astra/Hotbird

  • Zitat


    EDIT:
    Habs gefunden:


    Ich glaub daran lag's nicht. Hatte bei Faktor 1.5 auch noch 1.12 im Environment, aber
    wie gesagt da muss ich noch genau hinschauen. Aber vielleicht war das noch vor
    der Komma/Punkt-Geschichte.


    MfG - HjW

    VDR-1.3.39 - Kernel-2.6.13 - xine - nova-s-plus -Astra/Hotbird

  • so, jetzt hab ich nachgesehen.


    Datei: process-dvd.c


    Hier wird einem "double" das Ergebnis einer 64-bit integer-division + 0.12 zugewiesen:


    Zitat


    mFactor = vsize / ((off64_t)mJob->DiskSize() * MEGABYTE(1) - asize) + .12;


    es kommt eine 64-bit-integer-Zahl plus 0.17 heraus.
    (gcc 4-02)


    Habe es ersetzt mit


    Zitat


    double v = vsize;
    double d = (off64_t)mJob->DiskSize() * MEGABYTE(1);


    mFactor = v / (d - asize) + .12;



    MfG - HjW

    VDR-1.3.39 - Kernel-2.6.13 - xine - nova-s-plus -Astra/Hotbird

  • Hallo zusammen,


    ich habe die zwei Tipps (Patch von Thomas und Änderung von hjwd) von oben ausprobiert, aber leider ohne Erfolg für meinen Fehler.


    Der Requantisierungsfaktor ist nun <>1.12. Aber dennoch bleibt das Requantisieren in dem Beispiel bei 40MB stehen.


    Kann das evtl. daran liegen, dass per Default das Verzeichnis /tmp für irgendwelche Dateien herhalten muss. Meine root-Partion (mit /tmp) hat allerdings nur noch 131 MB frei.
    Allerdings benutzt burn auch mein Verzeichnis /data/video0/.vdr-... und zusätzlich liegen Dateien in /tmp/.


    PS: Ich habe mir auch den neuesten Snapshop aus dem burn-cvs gezogen, wie im VDR-Wiki zum burn-Plugin erwähnt:

    Code
    cvs -z3 -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot co burn


    Aber auch hier bleibt mein Brennversuch stehen.
    Und ich habe gesehen, dass Thomas Patch wohl schon eingearbeitet ist. :)


    Viele Grüße
    TeeRose

    Hardware: Hauppauge DVB-S 1.3 FF, TT DVB-S Budget S1102, MSI-6737, P4 1.4 GHz, 386 MB Ram, 250 GB, IR-Einschalter Rev.4, Hauseinspeisung per AVM2
    Software: Debian Etch 4.0, Kernel 2.6.26.5, vdr 1.4.7, DVB-Treiber aus Kernel, Firmware 2623, LIRC 0.8.4pre1, nvram-wakeup 0.97
    Plugins: epgsearch, burn, osdteletext, streamdev, text2skin+Enigma, osdpip, femon, timeline, image

  • Zitat

    Original von TeeRose
    Allerdings benutzt burn auch mein Verzeichnis /data/video0/.vdr-... und zusätzlich liegen Dateien in /tmp/.


    In /tmp werden nur fifos usw angelegt - nichts, was größentechnisch von Bedeutung wäre.



    Zitat

    Und ich habe gesehen, dass Thomas Patch wohl schon eingearbeitet ist. :)


    Der double- und locale-Patch ist bereits eingearbeitet, ja.

  • Hallo,


    habe noch ein Problem entdeckt:


    Die Aufnahmen auf der DVD sind ein bisschen zu kurz, d.h. sie ENDEN ca einige
    Sekunden früher als die original .vdr Dateien. Ist meiner Tochter aufgefallen, weil
    ich ihr Spongebob-Doppelfolgen auseinanderschneiden musste, und jetzt fehlt
    auf der DVD immer der Schluss... Wenn die Aufnahme einen längeren Abgesang
    hat fällt das nicht so auf, da ich mir den Abspann nicht bis zum Ende ansehe.


    Hat das schon mal jemand beobachtet? Falls nein, werde ich mir das wohl mal
    genauer ansehen müssen.


    MfG - HjW

    VDR-1.3.39 - Kernel-2.6.13 - xine - nova-s-plus -Astra/Hotbird

  • ich schrieb:

    Zitat


    Die Aufnahmen auf der DVD sind ein bisschen zu kurz, d.h. sie ENDEN ca einige
    Sekunden früher als die original .vdr Dateien.


    ich habe das jetzt mit ein paar kurzen Aufnahmen ausprobiert. Es fehlen immer
    die letzten 20-30 Sekunden.


    Ich versuche mal herauszufinden, an welcher Stelle die verloren gehen. Muss
    mich aber erst durch die ganzen Pfeifen wühlen.


    Tritt das nur bei mir auf?


    MfG - HjW

    VDR-1.3.39 - Kernel-2.6.13 - xine - nova-s-plus -Astra/Hotbird

  • Ich habe das jetzt etwas genauer angesehen:


    (1) Ich habe so das Gefühl, dass das mit den Pipes zusammenhängt. Irgendwelche
    gehen da zu früh zu Ende. Da ich mit kurzen Aufnahmen gearbeitet habe, fand
    KEIN requant statt.


    (2) Die Länge des fehlenden Stücks (am Schluss) hängt von der Rechnerlast ab.


    (3) Ein und die selbe Aufnahme immer wieder zum vob gemacht ist unterschiedlich
    lang.


    (4) Wenn ich die Pipes zerpflücke und mir diverse Zwischenergebnise ansehe,
    fehlt nix (bis hin zum ge-mplexten (also vor der übergabe an dvdauthor)).


    (5) In den Pipes werden weniger video-frames als audio-frames gefunden. Die
    Anzahl der fehlenden Frames ist bei jedem Lauf (bei gleicher Aufnahme) unterschiedlich.


    (6) Software: burn (pre1 etwas älter und auch cvs von 2006-03-15 abends), dvdauthor
    (letzte stabile von Anfang 2005 und auch letzte alpha) - egal was ich verwende, Verhalten
    ist immer das gleiche.


    (7) Ein älteres Burn-Plugin (also vor der pre1) hatte ich nie im Einsatz, wahrscheinlich
    taucht das Problem dort nicht auf sondern hat mit den umstrukturierten Pipes zu tun.


    (8 ) Ich will nicht ausschließen, dass je nach Rechner/Kernel/Last auch längere Stücke
    am Schluss fehlen bzw. vorzeitig abgebrochen wird (was auch das Problem von TeeRose
    erklären könnte).


    MfG - HjW

    VDR-1.3.39 - Kernel-2.6.13 - xine - nova-s-plus -Astra/Hotbird

  • Ich bin gerade erst auf diesen Thread gestoßen...


    Zitat

    Original von Jarod
    Ich habe in meinem VDR 256MB RAM und da ich per NFS boote, keine Swap Partition...


    Keine Swap Partition zu haben ist i.A. keine so gute Idee. Wie Du Swap per NFS nutzen
    kannst, ist in diesem Thread erklärt.

  • Hallo zusammen,


    ich habe jetzt mal mein Verzeichnis /tmp gelöscht, welches auf einer Partition mit nur ca. 130 MB freiem Platz war.
    Dann habe ich einen Link von /tmp auf /data/video0/tmp gelegt, also ein Verzeichnis in meiner Video-Partition, welche noch zig GB freien Platz hat.


    ...und siehe da, jetzt läuft meine ansonsten gescheiterte Zusammenstellung, und das mit Requantisierung. :)


    Von Dauer will ich aber diese Frickel-Lösung mit dem umgebogenen /tmp nicht haben. Also muss ich mal die Einstellungen in den Skripten rund um burn prüfen.
    1. Im vdrburn-dvd.sh ist mehrfach /tmp in den einzelnen Befehlen (beim render), was vermutlich nicht das Problem ist.
    2. Da wäre im vdrsync.pl eine Variable für tmp: $tmp_dir. Vermutlich kann ich damit etwas bewirken. Habe ich aber noch nicht getestet.


    Oder kann ich irgendwo in einer config zum Plugin burn etwas einstellen?
    Es gab ja mal die Config-Datei .../conf/plugins/burn/vdrburnscript.conf.
    In wie weit dort welche Parameter noch gültig sind, steht leider in keinem aktuellen Readme. Schön wäre es, wenn man dort ein alternatives tmp angeben kann. Dann braucht man nicht die vdrsync.pl zu ändern.


    Viele Grüße
    TeeRose

    Hardware: Hauppauge DVB-S 1.3 FF, TT DVB-S Budget S1102, MSI-6737, P4 1.4 GHz, 386 MB Ram, 250 GB, IR-Einschalter Rev.4, Hauseinspeisung per AVM2
    Software: Debian Etch 4.0, Kernel 2.6.26.5, vdr 1.4.7, DVB-Treiber aus Kernel, Firmware 2623, LIRC 0.8.4pre1, nvram-wakeup 0.97
    Plugins: epgsearch, burn, osdteletext, streamdev, text2skin+Enigma, osdpip, femon, timeline, image

  • Fehlalarm, burn kommt jetzt nur bis ca. 1.5GB und bleibt an folgender Stelle hängen, ohne dass ich weiß, was los ist. Die Prozesse sind noch da, aber es tut sich nichts mehr:


    Hardware: Hauppauge DVB-S 1.3 FF, TT DVB-S Budget S1102, MSI-6737, P4 1.4 GHz, 386 MB Ram, 250 GB, IR-Einschalter Rev.4, Hauseinspeisung per AVM2
    Software: Debian Etch 4.0, Kernel 2.6.26.5, vdr 1.4.7, DVB-Treiber aus Kernel, Firmware 2623, LIRC 0.8.4pre1, nvram-wakeup 0.97
    Plugins: epgsearch, burn, osdteletext, streamdev, text2skin+Enigma, osdpip, femon, timeline, image

Jetzt mitmachen!

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