VDR-Plugin Permashift

See this page for English version.

Dies ist die Homepage des Permashift-Plugins für den Video Disc Recorder (VDR).

Die aktuelle Version von Permashift ist 1.0.0. Seit der Version 0.5 wurde Permashift fast komplett umgeschrieben. Auf vielfachen Wunsch nimmt es jetzt nicht mehr automatisch auf Festplatte auf, sondern benutzt den Hauptspeicher, um einen per­ma­nen­ten Timeshift zu realisieren. So kann der Zuschauer jederzeit inner­halb des Live-Programms, das er gerade gesehen hat, zurück­spulen oder eine Sofortaufnahme starten, die das schon Gesehene bein­haltet. In beiden Fällen wird das Video, das im RAM zwischen­ge­speichert wurde, auf Festplatte gesichert.

Achtung

Permashift lässt sich leicht so einstellen, dass es die meisten Rechner (vor allem solche, wie sie für VDR meist verwendet werden) in die Knie zwingen kann. Es kann, wenn der Benutzer es so wünscht, bis zu 6 GB Hauptspeicher verbrauchen. Wenn mit Permashift VDR oder andere Programme langsam oder ungleichmäßig laufen, sollte man als erstes den Speicherbedarf in den Optionen herunter­setzen. Vor­ein­gestellt ist eine für die allermeisten Maschinen un­pro­ble­matische Speichergröße von 100 MB.

Außerdem belastet Permashift beim Zurückspulen aus dem Live­fernsehen die Festplatte gleich dreifach: Der Zwischenspeicher muss schneller gesichert werden, als das Zurückspulen die Daten benötigt, für das Spulen selbst werden die Daten wieder eingelesen und schließ­lich muss ja auch noch das fortlaufende Programm auf­ge­nommen werden. Bei mir hat das keine Schwierigkeiten verursacht. Wer jedoch Probleme beim direkten Zurückspulen bekommt, kann das parallele Abspeichern in den Optionen deaktivieren.

Voraussetzungen

Das Plugin ist auf einige Änderungen am VDR-Hauptprogramm angewiesen. Das sind andere als bei den 0.5er-Versionen. Wenn der alte Patch im Code ist, muss er vorher entfernt werden.

VDR-Patch

Der Patch passt zum Quellcode von VDR 2.0.5. Dank der Flexibilität des Patch-Mechanismus sollte er auch bei anderen aktuellen Ver­sionen unverändert funktionieren.

Anwendung

Aus Benutzersicht sollte das Plugin unauffällig seinen Dienst ver­richten. In den Optionen kann man einstellen, wieviel Speicher maximal verwendet wird und ob beim Zurückspulen gewartet wird, bis der Puffer komplett gespeichert ist, oder ob nur ein kleiner Teil direkt und der Rest parallel zum Zurückspulen gesichert werden soll. Außerdem kann man das Plugin deaktivieren. Die (wenigen) Texte des Plugins gibt es in Deutsch und Englisch.

Bei aktiviertem Permashift kann man durch Drücken der Rewind-​Taste aus dem Liveprogramm direkt zurückspulen. Dabei wird in den Wiedergabemodus gewechselt, ab da gelten also dieselben Fern­bedienungs­be­le­gungen wie beim Anschauen einer Aufnahme. Wie weit man zurückspulen kann, hängt von der eingestellten Größe des Puffers ab (und natürlich davon, wie lang der Sender schon läuft).

Außerdem kann man wie gewohnt eine Sofortaufnahme anlegen. Diese beinhaltet dann das bisher Gesehene, soweit es in den Puffer gepasst hat, und hat ab dem Anlege-Zeitpunkt gerechnet die in den VDR-Optionen ausgewählte Länge (voreingestellt sind drei Stunden). Für Pause- und Sofortaufnahmen gelten die Einstellungen des VDR. Ob solche Aufnahme gelöscht werden, hängt daher von der ent­spre­chenden Option ab (Aufnahme => Zeitversetzte Aufnahme löschen).

Download

Nach all der Vorrede hier also das Plugin. Es muss selbst kompiliert werden (Anleitung). Das Plugin verwendet das aktuelle VDR-​Make­file-​System (das mit der VDR-Version 1.7.34 eingeführt wurde).

Plugin
Kommentare?

Ich freue mich über Kommentare! Wenn du es ausprobiert hast, schreib mir. Egal ob es funktioniert hat oder nicht. Wenn du Än­de­rungs- oder Erweiterungsvorschläge hast, schreib mir. Wenn du mehr Optionen benötigst, schreib mir.

21 Gedanken zu „VDR-Plugin Permashift“

  1. Anmerkung: Alle Kommentare, die vor diesem hier abgegeben wurden, beziehen sich noch auf die alte Permashift-Version 0.5.

  2. Hallo Eike,

    ich experimentiere zur Zeit mit MLD auf 2 Raspberry Pis – einer als Client und einer als Server – und bin ganz “scharf” auf Permashift. Neuerdings wird das bei MLD auch angeboten, aber ich glaube ich verstehe die Funktionweise noch nicht genau.
    Ich nutzt DVB-T – Sticks am Server – die Aufnamen landen auf einer Platte am Server.

    1. Wo wird Permashift installiert? Server oder Client.
    2. Wenn es auf dem Client istelliert werden muß, wo landen da die Timeshiftdaten? Auf dem Server?

    Gehen die Daten erst vom Server zum Client und dann wieder zurück zum Server um dort gespeichert zu werden?

    Dann würde ja ein extra datenspeicher am Cleint sinnvoll sein. Weil der Pi hat ja nicht so viel Speicher.

    Kannst du helfen?

    Gruss,
    Andre

    1. Hallo Andre,

      ich habe leider keine Ahnung vom Einsatz von Permashift in einem Client-Server-Szenario. Meine Vermutung wäre ja, dass Permashift auf dem Server laufen und der Client gar nichts davon merken sollte, aber so einfach scheint es wohl nicht zu sein. Du bist aber nicht der einzige, der sich für das Thema interessiert. Ich würde vorschlagen, dass du einen Thread auf vdr-portal.de dazu öffnest. Übrigens ist Permashift gerade in einer (leider viel zu langen) Übergangsphase: Ich habe im Vdr-Portal eine Testversion veröffentlicht, die direkt in den Speicher statt auf Festplatte aufnimmt.

      Ciao,
      Eike

  3. Hallo,

    ich komme aus der Welt der Dreamboxen, hab persönlich noch eine 7025 SD Box, im “support” einige 800se und 7020HD und möchte mich nun weiter entwickeln und für mich VDR nutzen. Ich bin gerade dabei mich rein zu arbeiten. Einige Bedienungstechnische Unwegsamkeiten suche ich noch, wird aber werden. Auch eine Fernbedienung gibt es noch nicht. Bin mir da noch unschlüssig was ich nehme.

    Das Killerfeature bei der ganzen Sache ist allerdings das Timeshift und dessen Kompfort. Ich hab vdr-plugin-permashift aus ppa:gandalf-der-grosse installiert.

    Ich würde dir gern mal beschreiben wie es bei der Dream gelöst wurde. Vielleicht kannst du da einiges übernehmen.

    Als erstes hier mal die Einstellmöglichkeiten: http://i37.photobucket.com/albums/e67/humsat/screenshots_plugins/PermanentTimeshift.jpg

    Wichtig hierbei meiner Meinung nach der Delay in s ab wann die Timeshift Aufnahme nach dem Umschalten beginnen soll. Das Problem ist das er im Moment beim Zappen ständig auf der Platte rumwerkelt obwohl sich noch keiner für einen Kanal entschieden hat. Das könnte das System und die Festplatte entlasten.
    Das ganze in Events/Sendungen auf zu teilen finde ich bei der Dream etwas ungünstig, beim zurück spulen und zeitversetzten Sehen gibt es zwischen den Sendungen kurze Unterbrechungen an den Stellen wo laut EPG eine neue Sendung begonnen hat, weil eine Aufnahme/Ausgabe beendet wird und sofort eine neue Aufnahme/Ausgabe gestartet wird.

    Ein anderen Speicherort in den Einstellungen/Cfg festlegen wäre auch eine klasse Sache, sonst sieht ja keiner mehr durch. Den Ordner würde ich dann bei jedem Neustart noch zusätzlich leeren. Letztens war Stromausfall und auf meiner Dream blieben TS-Aufnahmereste über und es funktionierte kein TS, außerdem kam eine Fehlermeldung auf dem TV. Durch das leeren beim Start würde sich das Problem mit den verweißten Aufnahmen durch Bedienfehler minimieren.

    Die Idee mit dem RAM ist nicht schlecht nur bei HD TV ist der übel schnell voll und einen Ringspeicher im Linux zu programmieren, da haben die sich bei der Dream schon schwer getan, zumindest hab ich das mal irgendwo gelesen.

    Dann wäre so ein Menu Gold Wert, http://www.dreambox-blog.com/index.php/5701/permanent-timeshift-1-1-bringt-unterstuetzung-fuer-release-3-2-images, alles klar verständlich für die besseren Hälften die mit zurückspulen und Timer setzen und hin und her etwas unsicher sind ob die das Richtig machen.

    Wichtig wäre auch mit nur einem Tastendruck (meinetwegen Stop oder Exit) in die Live Zeit zu springen um dann umschalten zu können, ohne eine neue Timeshiftaufnahme zu starten. Mit der Zurück-Taste springt der im Moment in das Timermenu und die Aufnahme bleibt unter Aufzeichnungen erhalten. Ich glaube aber das dies eher ein Problem des VDR und nicht des Plugins ist.

    Für die Schönheit wäre es schick das Rec Symbol nicht blinken zu lassen.

    Ansonsten finde ich es gut das sich jemand darum kümmert Permanentes TS wird immer etwas stiefmütterlich behandelt. Leider bin ich nicht in der Lage so was mit humanem Aufwand selber auf die Beine zu stellen. Man kann halt nicht alles…

    So long..

    1. Hallo Nico,

      danke für das ausführliche und konstruktive Feedback, find ich klasse!

      Mir ist schon bewusst, dass der aktuelle Zustand von Permashift nicht optimal ist. Eigentlich hab ich das fast permanente Timeshift mit einem billigen Trick erreicht. Ich bin daher derzeit dabei, eben doch die Ringspeicher-Lösung zu bauen. Das hätte viele Vorteile, von deutlich weniger Belastung von Platte und System bis hin zum nicht mehr blinkenden Aufnahme-Symbol. Der Ringspeicher selbst ist nicht schwer, das war zu meiner eigenen Überraschung an einem Nachmittag runterprogrammiert. Was mir sehr schwerfällt, ist der nahtlose Übergang von dem, was in den Speicher aufgenommen wurde, zu dem, was beim Anstoßen einer richtigen Aufnahme auf der Festplatte landet. Da sitze ich jetzt schon länger dran, und ich hab als einer, der beruflich programmiert, halt auch nicht jeden Tag Zeit und Motivation, mich nach Feierabend noch dranzusetzen. Aber… ich arbeite daran, und dann sollte der eine oder andere Wunsch erfüllt sein oder sich leichter erfüllen lassen.

      Ciao,
      Eike

  4. Hallo Eike,

    mir fehlte diese Funktion schon sehr und ich habe diese bei mir mal eingebaut. Was ich aber unpraktisch finde, ist wenn ich im Abspielmodus vom Buffer bin und die Bufferwiedergabe mit “Stop” verlasse, wird der Buffer gelöscht und es startet ein neuer. Es sollte nur beim Senderwechsel praktischerweise ein neuer Buffer starten.

    Oliver

    1. Hallo!

      Das irritiert mich ehrlich gesagt auch selbst regelmäßig in der Benutzung. Ich werd mir das mal ankucken. Aber derzeit bin ich dabei, Permashift komplett umzukrempeln (wenn ich nach einem Tag des beruflich Programmierens denn mal Zeit und Lust habe), von daher muss das Problem noch warten.

      Ciao,
      Eike

  5. Hallo Eike,
    deine Plugin-Beschreibung ließt sich wirklich sehr interessant. Das ist wirklich das Plugin was mir noch fehlt. Mir geht es da wie Phillip (mit der Freundin und Entertain).
    Aber stimmt es, dass man mit dem Plugin nicht VORspulen kann? Das ist in meinen Augen ja grade das geniale an Timeshift, dass man das Fernsehprogramm anhalten kann und dann später über die Werbung wieder hinwegspult.

    Grüße

    1. Hallo! Sobald du im Abspielmodus bist (durch Pause Drücken), kannst du alles machen, was du beim Abspielen einer normalen Aufnahme auch machen kannst. Du musst zum Vorspulen halt nur der Livesendung ausreichend weit “hinterherhinken”, aber das ist ja klar. Viel Spaß! :o)

  6. @Eike: Endlich(!) baut wieder jemand permanentes Timeshift in den VDR, Da hab ich jahrelang drauf gewartet (hab das auch im VDR-Forum schon gesagt). Wirklich toll! Zwei Wünsche habe ich noch:

    - die Möglichkeit direkt ins Ram zu buffern, wenn man genug Ram hat.
    - direktes Zurückspulen (hast Du ja selbst schon angedeutet). Meiner Meinung nach musst Du Dir ncht so viele Gedanken wegen der geänderten Tastaturbelegung machen, das war im alten Livebuffer-Plugin auch so. Soll heißen: die alten User wie ich kennen das nicht anders, die neuen User müssen sich eh an was Neues gewöhnen ;)

    viele Grüße, Nix

  7. Hi Eike,

    bin Entertain-Kunde und YMMD. Diese Funktionalität ist das einzige was mich (oder besser meine Freundin) noch an diesen blöden Windows-Entertainreceiver bindet.

    Ich werde es am Wochenende mal testen. Benutzt du eigentlich das xine-Frontend, bzw. funktioniert das auch gut mit XBMC (xvdr).

    Viele Grüße
    Philipp

    1. Hallo!

      Man hat’s nicht immer leicht mit den Abkürzungen, ich hab jetzt zuerst auf “Your Mileage May Differ” getippt. :)

      Ich verwende sehr altmodisch eine SDTV-Röhre, die von einer auf E-Bay erstandenen Hauppauge PVR-350 gespeist wird. Ich kann dir daher zu deinen Fragen wenig sagen. Probier’s einfach mal aus (und berichte hier, wenn du magst), oder frag im VDR-Portal nach, da gibt’s bestimmt einen, der es schon probiert hat…

      Ciao,
      Eike

      1. Ja, so ähnlich :-D

        Ich kann dir berichten (ich konnte natürlich nicht bis morgen warten), dass ich meinen VDR patchen konnte und es auch sauber kompiliert bekommen habe. Er startet dann auch und lädt dein Plugin.

        In XBMC sind leider bei LiveTV die Spulentasten ausgegraut :-/ Insofern kann ich derzeit gerade nicht sagen, ob es bei mir funktioniert.

        Welche Einstellungen werden eigentlich in der setup.conf gemacht? Habe da nur eine neue entdeckt:
        DelTimeshiftRec = 0

        Ansonsten müsste ich doch zumindest die Cachedateien sehen in meinem VIDEO_DIR wenn ich auf Pause drücke, oder?

        Grüße
        Philipp

        1. Es gibt im Moment zwei Optionen:
          permashift.EnablePlugin = 1
          permashift.MaxTimeshiftLength = 4
          Das DelTimeshiftRec ist vom VDR selbst.
          Du solltest im VDR-Menü automatisch die Timeshift-Aufnahme sehen.
          Zurück kommst du über Pause, Play und dann Rewind (siehe oben. :-) ).
          Wenn du Hilfe brauchst, kannst du mich anmailen, an eike bei ein-eike.de

          1. Danke.

            Da ich das VDR-Menü derzeit nicht habe, da ich ja XBMC verwende, kann ich da nichts einstellen. Nachdem ich die beiden Einstellungen in die setup.conf gesetzt habe, entstehen beim “Zappen” jeweils immer neue Aufnahmen, scheint soweit also so weit zu funktionieren.

            Übrigens, beim vdr-plugin-xvdr ist auch schon eine Timeshift-Funktion mit dabei habe ich gerade gemerkt. Jedoch kann dir nur anhalten und und wieder abspielen. Deine kann ja schon mehr, vorspulen wäre noch nett. :-)

            1. Jetzt staun ich über zwei Sachen… daß man mit XBMC nicht irgendwo an die VDR-Optionen rankommt, und dass Permashift nicht von allein loslegt, wenn es keine Optionen findet.
              Den (nicht-permanenten) Timeshift, der ab Pause Drücken aufnimmt, hat der VDR wohl schon seit vielen Jahren.

              1. XBMC und VDR sind schon zwei verschiedene Dinge. In xbmc sieht man einen Stream vom VDR. Den kann man natürlich auch timeshiften, das macht dann aber xbmc (bzw. das dort laufende PVR-Plugin) und nicht der VDR. Die Timeshift-Funktion von Eike ist eine, die man direkt im VDR nutzen muss/kann/darf. Das hat keinen Einfluss auf die xbmc-Funktionen. Aber(!): Es gibt ein experimentelles PVR-Plugin für xbmc von FernetMenta (der auch das Standard-vnsi-plugin für xbmc maintained), welches ersten irgendwann auch so ein permantentes Timeshift in xbmc können solol und zweitens Zugriff auf das VDR-OSD bietet. Das ist aber ein ganz anderes Thema…

  8. Eine Frage: Wenn der permanante Timeshift sagen wir, bereits eine Stunde läuft und nun spule ich 15 Minuten (vom aktuellen live-Zeitpunkt) in der Timeshiftaufnahme zurück und drücke dann die Aufnahmetaste – wird die Aufnahme dann den GESAMTEN Timeshiftbuffer enthalten oder beginnt die Aufnahme dann beim Zeitpunkt zu dem man zurück gespult hat.
    So wie ich die Beschreibung gelesen habe, beginnt die Aufnahme mit dem Timeshiftbuffer-Beginn. Dann wäre es ja egal wohin ich zurückspule.
    Das wäre schade. Denn wenn man die Aufnahme weiterverarbeiten will – gar an einem anderen PC, muss man das ungewünschte Stück mitkopieren und hinterher rausschneiden.

    Lässt sich das in einer künftigen Version ändern?
    Ich bin da etwas von meinem alten Topfield-Receiver verwöhnt worden: aus dem Livebild Rückspultaste bis zum gewünschten Zeitpunkt, dann Aufnahme starten, die beginnt “hier”; mit einmal Stop springt man wieder zum Livebild und die Aufnahme hat bereits diese Zeitspanne “im Bauch” (aber eben auch keinen weiteren “Ballast” von davor) und läuft weiter.
    So was suche ich schon lange (und auch den kompletten Videotext im Aufnahmestream, z.B. wegen der Untertitel – das ist bei vdr immer noch nicht ohne Frickelei enthalten).

    1. Die Sofortaufnahme umfasst tatsächlich alles, was sie kriegen kann, also den Timeshift-Buffer von Anfang an. Aus meiner Sicht ist das die sicherere Variante. So bekomme ich so viel wie geht und kann im Zweifel wegschneiden. Bei deiner Variante könnte etwas verlorengehen, wenn man nicht damit rechnet.

      Man könnte (per Option umschaltbar) auch die andere Variante einbauen. Da stehe ich aber wieder vor dem Problem, dass das nur im VDR-Hauptprogramm realisiert werden könnte und ich den so wenig wie möglich umbauen will…

  9. Hallo,
    ich habe das Plugin gerade mal mit dem VDR 1.7.40 ausprobiert. Scheint in einem ersten kurzen Test zu funktionieren, allerdings ist das Makefile noch nicht auf den neuen Stand für den VDR > 1.7.36 angepasst, sondern fordert vehement eine make.config aus dem VDRDIR ein und hat noch nicht alle vorgeschlagenen Targets.

    Ach ja: den Ringbuffer im RAM (oder zumindest die Möglichkeit ein Unterverzeichnis des Aufnahmeverzeichnisses des VDR zu nutzen, das man auch in eine Ramdisk legen kann, würde ich tatsächlich bevorzugen ;)

    1. Danke für’s Probieren! Das mit dem Makefile geh ich jetzt an; es wird ja auch bald die nächste stabile Version des VDR (seit wieviel Jahren? ;) ) geben.

      Die Ramdisk klingt nach einer interessanten Idee, das würde die Sache auf meiner Seite etwas weniger kompliziert machen. (Und dafür beim Nutzer komplizierter.) Aber wie gesagt…

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>