AutoShifting

  • Hiho.


    Nachdem ich mir mit dem BackZapp-Patch gekonnt in den Fuß geschossen habe, möchte ich diesmal erst meine Idee präsentieren und darüber diskutieren, bevor ich wieder solch nen Quatsch mache, der evt. standartmäßig dabei ist.


    Also. Das High-End-DVB-Ding meiner Eltern hat, außer dem zweiten Anschluss, nur eine Sache, die meinem VDR fehlt (okay, es startet auch schneller): AutoShifting.


    Lasst mich kurz erklären, was ich meine.
    Du schaust da z.B. "Wetten dass ...?" (oder sonst einen Quatsch) und der Gottschalk nuschelt da etwa, worauf das ganze Publikum in einem einzigen Lachen zusammen fällt. Du hast es aber nicht verstanden und würdest es gerne nochmal hören. Mit AutoShifting kein Problem. Du spulst einfach zurück.


    Bei AutoShifting wird von dem Zeitpunkt an, wo du zu dem Sender "zäppst" dieser mitgeschnitten und da kannst darin rumsuchen so viel du willst. Dies ist bei meinen Eltern noch mit einem schönen kleinen Vorschau-Bildchen geschmückt, welches dann anzeigt, was da als Bild kommen wurde. Aber das ist was anderes.


    Der zweite Vorteil ist, dass man beim Sehen evt. denkt " och, dass würd meine(n) Freundin/Frau/Freund/Mann/Sohn/Tochter/*bitteErsetzten* sicher auch interessieren" und mann kann es im Nachhinein noch aufnehmen, weil es ja gespeichert wurde.


    Also. Ich überlege schon länger, das mal zu versuchen. Und da ich heute durch das Patchen "Blut geleckt" habe, überlege ich gerade, ob man das nicht auch in den VDR bringen könnte. Also genauer denke ich schon darüber nach, seit meine Eltern den Recorder haben. UNd naja, derzeit habe ich Ferien ;)


    AutoShifting - so stelle ich es mir vor
    Möglichkeit 1:
    Also. Wenn man auf einen Kanal schaltet, wird der (sofern genug Platzt ist, da muss man sich was überlegen um das gescheit abzufangen) mitgezeichnet.
    Über das Setup kann man festlegen, wie viele Minuten der standartmäßig mitschneiden soll (bei 0 wird das abgeschaltet).


    Er speichert dann also dies auf der Festplatte (oder im RAM? aber das wird wohl nix, dass ist ja zu viel zu wenig Speicherplatz). Wenn man nun Pause drückt, startet der quasi die Aufname und spielt sie ab dem Zeitpunkt ab. Das Dumme ist nur, dass der quasie den Anfang wieder "verschlucken" müsste. Also, Wenn die, sagen wir mal 30 Minuten aufgenommen wurden, muss er wieder anfangen die von Vorne zu löschen.


    Wenn man diese nun dauerhaft speichern will, startet man quasie einfach einen neuen Timer für die laufenden Sendung, und er guckt, was er davon schon mitgeschnitten hat und speichert das halt auch mit.


    Möglichkeit 2:
    Statt die Aufname erst beim Stoppen oder Zurückspulen zu aktivieren, gäbe es noch die Möglichkeit die Daten erst auf der Festplatte zwischen zu speichern und direkt davon abzuspielen. Sodass das Live-Bild auch eigentlich eine Aufnahme ist....


    So. Was denkt ihr.
    1. ist das nötig/brauchbar
    2. Ist das machbar?
    3. versteht ihr überhaupt was ich meine?
    4. welches ist die "bessere" Möglichkeit (aus sicht von VDR)
    5. Gibt es das schon, oder etwas ähnliches?



    gebt mir Feedback (ich steh drauf ;) )


    mfg bn

  • Zitat

    Original von LightYear
    gebt mir Feedback (ich steh drauf ;) )


    die funktion gibts noch nicht, wird aber von vielen vermisst!
    mach es und niemand wird sich mehr erinnern, dass dein erster patch "0" Funktion hatte :P


    mfg
    schelli :sonne

    Scenic D6 Umbau; Asus-P3B-F; Celeron 633Mhz; 256MB; 360GB; DVD+-RW; DD5.1; GLCD 240x128; 1x DVB-S Rev. 1.6

    Einmal editiert, zuletzt von schelli ()

  • Eine interessante Sache, die aber Fragen aufwirft: was wird aus dem epg scan, hält eine IDE-Platte das auf Dauer aus, wie lange vorher willst du aufzeichnen..

  • Zitat

    die funktion gibts noch nicht, wird aber von vielen vermisst!


    das hab ich mir nach der ersten Antwort schon gedacht und die nacht schon mal durch überlegt, und teile auf papier nieder geschrieben. Allerdings kann ich erst anfangen, nachdem wir mit renovieren fertig sind. *g*


    Zitat

    Original von wirbel
    Eine interessante Sache, die aber Fragen aufwirft: was wird aus dem epg scan, hält eine IDE-Platte das auf Dauer aus, wie lange vorher willst du aufzeichnen..


    weißte. wenn ich eins bei meinem Programmieren erfahren habe, dann: "lass dich nicht vorher von den evtl. aufkommenden Problemen abhalten. Und löse sie, wenn sie wirklich auftreten, möglichst einfach." (das letztere meint übrigens Linux Torvalds)


    Ich geb dann mal grob weiter, was ich mir überlegt habe und (sofern nicht jemand einen wirklich sehr guten Grund hat, warum ich es anders machen sollte) umsetzten werde:


    Es werden wie in http://www.vdrportal.de/board/thread.php?threadid=11778 der HDD-Recorder durchnummerierte Dateien auf die Festplatte geschrieben sobald ein Kanalwechsel statt findet. Eine Solche Datei soll max. 200 MB groß sein (ca 10 min. Video). Wird eine neue Datei angefangen, wird geschaut, ob die Datei [aktuelleNummer]-[wasImSetupEingestelltWurdeWievieleBehaltenWerdenSollen] existiert. Sollte dies der Fall sein, soll jene im Hintergrund gelöscht werden.
    Bei einem Kanalwechsel, sollen alle bisher geschriebenen Dateien auf diese "LöschenListe" gestellt werden, damit nicht unnötiger Platz verbraucht wird.


    Wird nun die Pause-, Zurückspul- oder Play-Taste gedrückt, wird die Aufnahme gestartet, ab der letzten Stelle abgespielt und die jeweilige Funktion angewendet.


    All dies wird von einer weiteren Thread-Klasse übernommen, die ich, mit der Hilfe meines Vaters, schreiben werde. Evt. werden auch noch weitere Klassen hinzukommen, weil ich den enthalten recorder zu stark abändern muss, so dass dieser nicht mehr für den normalen Timer funzt.


    bisher stell ich es mir so vor:


    Version sollte können
    0.0.0.1 einfaches mitschneiden (von dem aktuellen)
    0.0.0.2 automatisches löschen
    0.0.0.3 einfaches abspielen der aufnahmen


    wird sich aber evt. noch während des Arbeitsprozess (aus erfahrung) ändern



    (feedbacked-mich) mfg bn

  • So ! Nu muß ich och noch meinen Senf los werden.


    Ich denke das man das weitgehend unabhängig vom Aufnahmesystem des VDRs abwickeln sollte.


    Als erstes bräuchte man einen Ringpuffer mit einer festen (einstellbaren) Größe. Darin landet alles was auch auf dem Livebild dargestellt wird (ohne OSD). Wird jetzt die Pause, Aufnahme oder Rückspultaste gedrückt, wird der Inhalt in eine Aufnahme kopiert, und damit normal weitergearbeitet wie auch bisher mit einer Timeshift- / Sofortaufnahme.
    Die Datei könnte dann zB VDR000 heißen, und man müßte nur dafür sorgen das der VDR sie beim Abspielen und Schneiden mit berücksichtigt.




    Lars


  • hm.. danke für den senf.
    das klingt wirklich gut... hab allerdings noch nie mit ringbuffern gearbeitet und wenn man diese (sagen wir z.b. mal 2 gigabyte) dann erst rüber kopiert, wird es stress damit geben. allerdings könnte man es evt. anstellen, dass vdr den ringbuffer wie eine normale aufnahme nimmt... (wie gesagt, ich hab noch keine erfahrungen mit dem ringbuffern, aber ich werde sofort schauen)


    mfg bn

  • Ich bin dagegen diesen Thread zu Schliessen.


    LightYear ist gewillt eine Funktionserweiterung für den VDR zu schreiben (find ich gut) und sollte auch Federführend (Themenstarter) sein.


    In den anderen Threads wurde nur Diskutiert und kein Ergebniss Produziert. Wenn LighYear wirklich dahinter steht und eine Version Rausbringt, sollten alle anderen Hier weiterschreiben und nicht umgekehrt.

    Debian Etch + eTobi packete + selbscompilierter VDR auf Kernel 2.6.18 - VDR 1.4.7 + Extension + diverse Plugins
    Chieftech Dragon BlackCase + Artic Cooling Case Fan; P4 2,4 Ghz mit Scythe NCU-2000 Fanless Cooler; Samsung 300GB; WesternDigital 320GB; MSI Board; DVD Brenner; Nexus-S V2.2; Skystar 2; IR-Einschalter Rev.4.; GLCD 320x240

    Gaudeo discere, ut doceam :whatever
    Im Web: http://www.renier.de

  • ?( Gibt so viele ueberfluessige Threads , warum sollte gerade dieser
    geschlossen werden.


    Zum Thema :
    Idee gut , Umsetzung schwer bis imho unmoeglich.


    Das es bei HW-Rekordern funzt, hat was mit Funktionsumfang zu tun.


    Das einfachste Beispiel ist , du hoerst ne Stunde Musik,
    also Aufnahme ueberfluessig.
    Du nimmst Programm A auf.
    Schaltest auf Programm B (wenn du da ueberhaupt hinkommst),
    jetzt musst du unterscheiden was ne Timeraufnahme ist ansonsten
    warst das mit Umschalten oder du schaust ARD und in 2 Minuten
    will startet Timer auf RTL. Du musst ja immer durchgehend
    ueberpruefen ob ne Timeraufnahme anliegt bzw. eine hinzugefuegt
    wurde.
    Das sind ja nur ein paar Sachen.
    Also wenn du das vernuenftig machen willst , dann bist du mehr mit Exceptionhandling als mit der wirklichen Funktion beschaeftigt . ;)


    bye


  • Also das hab ich mir ja auch schon überlegt, deswegen müsste dies wirklich eine Aufnahme sein, die NICHT als solche erkennbar ist, bedeutet, wenn der VDR aufgrund seines Timers umschaltet o.ä. ist ihm gar nicht bewusst, dass hier mitgeschnitten wurde.


    Das sollte auch möglich sein, so wie ich es im SourceCode gesehen habe...


    mfg bn

  • Zitat

    Original von wirbel
    Eine interessante Sache, die aber Fragen aufwirft: was wird aus dem epg scan, hält eine IDE-Platte das auf Dauer aus


    Die Platte sollte damit keinerlei Probleme haben. Entgegen landläufiger Meinung hat Lesen, Schreiben und Kopfbewegungen keinen wesentlichen Einfluss auf die Lebenserwartung. Eher schon die Betriebsstunden und die Anzahl der Ein/Ausschaltvorgänge.


    Gruß,


    Udo

  • Ich zB. brenn DVDs wärend 2 Aufnahmen laufen und ich eine Dritte anschau. :rolleyes:
    Das macht der Festplatte bisher keine Probleme.
    Wenn man den Ort der Datei kofigurierbar macht, könnte man die auch auf einer anderen Platte (oder Ramdisk für die ganz Harten) unterbringen.


    Das Problem mit dem Umschalten gibts eigentlich garnicht, wenn immer nur das gespeichert wird, was auch angezeigt wird. Wenn dann manuell eine Aufnahme gestartet wird, wird die Datei nach /video/wasauchimmer.rec/vdr000 verschoben und normal mit der Aufnahme in vdr001 begonnen wie bisher auch. Wenn der Auslöser die Rückspuhltaste war, wird halt mit der Wiedergabe bei vdr000 begonnen, sonst bei vdr001.
    Liegt die Pufferdatei auf der seben Partition wie die Aufnahme, werden dabei noch nichtmal großartig Daten durch die Gegend geschaufelt. Wenns trotzdem zu knapp wird, könne man die Datei auch vorerst nur umbenennen, und nach Abschluß der Aufnahme verschieben. Allerdings hats dann ein Platzproblem bei Verwendung einer Ramdisk.
    Wenn nun umgeschaltet wird, wird einfach eine neue Pufferdatei erzeugt, und das Spiel beginnt von vorn.




    Ich glaub das wär schon ein Ding wenn der VDR sowas könnte.


    Lars


  • also. so ungefähr stelle ich mir die funktionialität ja auch vor. das Problem ist nur, wie ich oben schon sagte, wenn du nun nee stunde mitschneiden lässt, dann sind das schon 2gigabyte und diese einfach herrüber kopieren wird nen bissl stress geben. deswegen werde ich es auf 200 mb-dateien beschränken... (ca 10 minuten).


    ich denke, wenn man nun dsa ganze speichern könne möchte, wird entweder berechnet, wie lange die sendung schon läuft und diese dateien werden mitkopiert oder, wenn man nen live-timer startet, kann man sagen, wieviele minuten man von dem alten behalten möchte...


    so stelle ich mir das vor.


    mfg bn

  • tacherl...


    So. Ich komme vorran. Da muss man sich aber wirklich erstmal reinfuchsen in den Quellcode. Viel Dokumentiert ist der auch nicht. Und meine Güte, was da für Klassen hinterstehen... kaum zu glauben...



    jedenfalls habe ich jetzt, nach dem 3. komplett-übern-haufen-werfen-und-neuanfang, endlich was.


    ACHTUNG: PRE ALPHA-STADIUM!!!. Es soll nur zeigen, wie es aussehen soll.


    Was passiert da jetzt?
    Also. Wenn man nach dem patchen und neu-kompilieren, im normalen Betrieb die "Pause" taste drückt, erstellt er im Hintergrund einen Timer und eine Aufnahme, die nach $VIDEODIR/.liveshifting aufnimmt. Später soll er das natürlich direkt beim Umstalten mache, aber derzeit ist das mit der Pause taste besser zu kontrollieren.
    Wichtig: Diese Aufnahme und der Timer werden dem VDR selbst vorenthalten. Soll heißen: er steht nicht in den Internen dafür vorgesehenen Listen. Das ist aber absicht, denn er soll diesen Timer schließlich nicht als solchen behandeln.
    Bei einem erneuten Pause-drücken startet er eine neue Aufnahme und die alte wird auf die zu löschen liste gesetzt.


    Über die PLAY-Taste wird nun das Aufgenomme abgespielt.



    Fehler
    In dieser Version ist mir ein SEHR großer Fehlerbekannt. Neben der Tatsache, dass das umschalten nur auf diesem Transponder möglich ist, gibt es einen rekonstruierbaren "video data stream broken". DIeser ensteht, wenn man Pause drückt und dann Play drückt. Dann bekommt der Recorder (warum auch immer) kein Bild mehr und nach einer halben Minute schwirrt der VDR einfach ab. *tolleSache*

    Das soll es sein?
    OH NEIN. DIeser Patch bietet noch nicht im geringsten, was ich mir dafür überlegt habe. Das soll folgen:
    * Kein VDSB-Error mehr
    * Aufnahme sollen sich selbst löschen (FIFO mäßig)
    * Bei Pause wird die Aufnahme gestartet und an der AKTUELLEN POSI angehalten
    * Bei Play wird die Aufnahme gestartet und ab ANFANG AN abgespielt
    * Bei REW wird die Aufnahme gestartet und zurück gespult
    * bei Record wird gefragt, wieviele Minuten man von dem bisherigen auch haben möchte.



    Soviel von mir. Wollte nur mal zeigen, dass ich daran arbeite. Glaube nicht, dass wirklich jemand was mit dem Patch in dieser Form anfangen kann, aber wäre über Feedback erfreut...


    mfg bn

  • Hallo LightYear,


    Zitat

    Original von LightYear
    ...Also. Wenn man nach dem patchen und neu-kompilieren, im normalen Betrieb die "Pause" taste drückt, erstellt er im Hintergrund einen Timer und eine Aufnahme, die nach $VIDEODIR/.liveshifting aufnimmt. Später soll er das natürlich direkt beim Umstalten mache, aber derzeit ist das mit der Pause taste besser zu kontrollieren.


    Was soll das mit der Pause-Taste? Die Funktion hat der VDR doch schon von sich aus, es geht doch ums automatische Aufnehmen ...


    Hardy

    Suche: 6 Richtige für die nächste Lottoziehung
    PS: Wer Rechtschreibfehler findet, darf sie behalten!

  • HFlor:
    Steht doch dort, dass das mit der Pause-Taste nur vorrübergehend und nur zum Ausprobieren ist ...


    LightYear:
    na da tut sich ja was! :] weiter so, bin gespannt wie das am ende ausschaut


    schelli :sonne

    Scenic D6 Umbau; Asus-P3B-F; Celeron 633Mhz; 256MB; 360GB; DVD+-RW; DD5.1; GLCD 240x128; 1x DVB-S Rev. 1.6

  • Zitat

    Original von LightYear
    jedenfalls habe ich jetzt, nach dem 3. komplett-übern-haufen-werfen-und-neuanfang, endlich was.


    Cool. Ich finde die Idee/ funktion auch gut. Kann Dir bei der konkreten Programmierung aber wenig helfen. Deshalb nur mal ein paar Tips/ Ideen:


    1. Event
    Bisher (normaler VDR) geht eine Direktaufnahme ja durch Drücken von "Pause" los. Du müßtest einen "Event" generieren, der beim Programmwechsel zuerst die laufende Shiftaufnahme stopt und löscht sowie eine neue Shiftaufnahme startet. Vielleicht kannst Du das Transponderproblem (Kanal nicht verfügbar) ja dadurch verhindern, weil ja so VOR dem Umschalten die Aufnahme gestoppt wird.


    2. Aufnahmezeit
    Sind ja einige Ideen dazu da. Wir sollten aber nicht vergessen, wofür die Shiftaufnahme da ist: "Da war doch was- wie war das nochmal?". Und eben NICHT der Ersatz für eine Direktaufnahme. Von daher schlage ich vor, eben NICHT eine Minutenzahl einstellen zu lassen, sondern lediglich An/Aus konfigurierbar zu machen. Wenn Du dann programmierst, kannst Du die vorgesehene Zeit (10Min schätze ich da schon als viel an!) bei der Programmierung als "Gottgegeben" hinnehmen und mußt Dich nicht mit Problemen bei Überlänge (z.B. 2GB Dateien) herumschlagen.


    3. Ringbuffer
    Das wohl größte Problem ist die Wiedergabe der Aufnahme. Ich schätze, daß Du da nicht ohne Tricks weiterkommen wirst.
    3a. Entweder nutzt Du die VDR-Funktionen (001.vdr...) und löscht die alten Dateien,
    3b. oder Du machst das in Deinem Programm selbst und verschiebst im Falle der Wiedergabe in das VideoDir.
    Lösung 3.b halte ich für absolut ungeeignet, denn:
    Beim Verschieben mußt Du neben den reinen Dateioperation auch daran denken, daß das Videodir aktualisiert werden muß (touch .update). Ich habe hier über NFS ca. 1TB an Aufnahmen, da dauert der Scan eine Kleinigkeit, die ich beim Shiften eigentlich nicht gebrauchen kann.
    Bleibt eigentlich nur 3a. Dann mußt Du die Dateien selbst aktualisieren- hier stellt sich mir insbesondere die Frage nach der index.vdr. Eine Idee wäre es, mit Aufnahmebeginn die 001.vdr zu schreiben, nach der Hälfte der (fest definierten) Zeit (5min?) die 002.vdr zu starten, nach weiteren 5Min die 001.vdr zu löschen, 002.vdr zu 001.vdr zu machen und 002.vdr neu starten. Aber was ist dann mit der index.vdr?
    Also das ist auch in Gedanken noch nicht ausgereift- da sollten wir den Gehirnschmalz hinstecken. Der Rest dürfte dann eigentlich kein so großes Problem sein...


    Wie auch immer: Viel Erfolg und die Idee ist Klasse!

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

Jetzt mitmachen!

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