Video Verzeichnis - suche einen weg 2 Ziele in einem Verzeichnis unterzubringen

  • Hallo Community,


    wie ich bereits im Forum gelesen habe geht es wohl seit 2.0 nicht mehr, mehrere Videoverzeichnisse zu nutzen.


    Der Hintergrund weshalb ich so eine Lösung suche ist die Lautstärke des Wohnzimmer PCs - hört sich lustig an, ist aber so. Mein Videoverzeichnis /srv/vdr/video ist ein Symlink auf meine Raid5 (4x750GB) Hdds, Wenn diese bei der Aufnahme laufen rattert es gut hörbar.


    Um dem abhilfe zu schaffen wollte ich nun meine Systemfestplatte (60 GB SSD drive) nutzen um die Aufnahmen zu machen, um diese dann Nachts in ein Unterverzeichnis z.B. /srv/vdr/video/raid zu schieben welches ich in den Ordner symlinken würde. Denn Nachts ist keiner im Wohnzimmer und, der lärm des Raids stört niemanden.


    Selbst wenn ich es schaffen sollte 2 Ziele in einen Video Ordner zu vereinen, woher würde vdr wissen auf welches Gerät es Aufnehmen soll.


    Bei der Wiedergabe rattert es längst nicht so wild wie beim schreiben der Daten, daher ist der Störfaktor eigentlich nur beim Aufnehmen.


    Also ich manuell versucht habe ob eine Aufnahme in einem Unterverzeichnis zu verschieben, aber dann kann diese vom vdr nicht mehr abgerufen werden.


    Danke für Tips und Anregungen


    Kitsab

  • Schau Dir mal mhddfs an, damit kannst Du beliebige Volumens zusammenfassen.


    Das sieht dann zum Beispiel so aus, /etc/fstab:

    Code
    mhddfs#/srv/vdr/video1,/srv/vdr/video2 /srv/vdr/video fuse defaults,allow_other 0 0

    mhddfs benutzt die Volumens in der Reihenfolge in der sie zusammengebaut werden, d.h. erst /srv/vdr/video1 und dann /srv/vdr/video2 im eigentlichen Aufnahme Verzeichniss /srv/vdr/video siehst Du beide Volumens als eines.
    Das heißt Du kannst die Aufnahmen in Zeiten wo es dich nicht stört von /srv/vdr/video1 nach /srv/vdr/video2 verschieben und falls Du das mal vergessen hast und die SSD voll ist wird automatisch auf Dein RAID aufgenommen.

    Gruß
    Frodo

  • wie ich bereits im Forum gelesen habe geht es wohl seit 2.0 nicht mehr, mehrere Videoverzeichnisse zu nutzen.

    VDR 2.0.x kann das noch, seit der Entwicklungsversion 2.1.2 ist das rausgeflogen:

    Also ich manuell versucht habe ob eine Aufnahme in einem Unterverzeichnis zu verschieben, aber dann kann diese vom vdr nicht mehr abgerufen werden.

    Der VDR macht bei mehreren Videoverzeichnissen folgendes:
    Die Metadaten der Aufnahmen liegen immer im ersten Video-Verzeichnis (z.B. /srv/vdr/video.00) die TS-Dateien werden unterhalb des gleichen Verzeichnisbaum in dem Video-Verzeichnis mit dem meisten Platz gespeichert und in das entsprechende Verzeichnis nach video.00 verlinkt.
    Wenn du Aufnahmen also von Hand z.B. nach /srv/vdr/video.01 kopieren willst, musst du eigentlich nur die Ordnerstruktur der Aufnahme in dem Ordner nachbilden, die TS-Dateien kopieren und die ursprünglichen TS-Dateien aus video.00 mit Symlinks darauf ersetzen.
    Ein paar Skripte die einem dabei helfen sollen es hier: Multiple Video-Verzeichnisse: freie Diskussion zu Konzepten, Patches, Lösungen und Wünschen


    Alternativ gibt es mit dem VDR 2.0.6, der seit gestern Abend auch im vdr-stable yaVDR-PPA ist, die Möglichkeit neben einem aktiv für Aufnahmen genutzten Aufnahmeverzeichnis zusätzliche Archiv-Verzeichnisse auf der gleichen Ebene einzubinden. Dazu muss es im eigentlichen Aufnahmeverzeichnis einen Ordner "local" geben, wo alle neuen Aufnahmen landen. Weitere Verzeichnisse/Partitionen können in eigenen Ordnern des Video-Verzeichnis gemountet/verlinkt werden. Der VDR muss dann mit dem Schalter "-H" bzw. "--hide-first-recording-level" gestartet werden. Das Argument kann man in die OPTIONS-Variable in /etc/default/vdr eintragen, z.B.:

    Code
    OPTIONS="-w 0 --dirnames=,,1 -H


    Dann kannst du komplette Verzeichnisse aus local in die Archivverzeichnisse verschieben (und umgekehrt) und der VDR sollte die Aufnahmen trotzdem in der gleichen Verzeichnisebene anzeigen können.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo,


    danke für die schnellen Antworten, ich bin gerade dabei den zweiten Lösungsansatz von seahawk umzusetzen mit der Erweiterung

    Code
    OPTIONS="-w 0 --dirnames=,,1 -H


    Ich habe mein VDR etwas anders als normal zum laufen gebracht die Datei /etc/default/vdr kommt bei mir wohl garnicht zum tragen.


    Ich lade die Erweiterungen über diesen Aufruf in meinem /usr/sbin/runvdr file.


    Code
    VDRCMD="$VDR_ENV /usr/bin/vdr -P'live --port 28008 --ip 192.168.111.242' -Pvnsiserver -w0 --dirnames=,,1 $*"#


    bei mir fehlt nun absichtlich die Option "-H" bzw "--hide-first-recording-level"


    da mein Syslog folgende Meldung ausspuckt beim verwenden von den beiden Optionen


    Code
    runvdr: stopping after fatal fail (/usr/bin/vdr: Unbekannte Option »--hide-first-recording-level«)
    bzw
    runvdr: stopping after fatal fail (/usr/bin/vdr: Unbekannte Option »-H«)


    gibt es diese Option eventuell nur in der dev Variante?


    Die variante Funktioniert, wie ich gerade beim testen herausbekommen habe, er nimmt aber nicht im Verzeichnis /srv/vdr/video/local auf sondern in /srv/vdr/video, es funktioniert jedoch die Aufnahmen im Ordner /srv/vdr/video/archiv (den ich gesymlinkt habe) aufzurufen und abzufpielen.


    Danke und viele Grüße


    Kitsab


    Ps. Wenn es von interesse ist, meine runvdr im /usr/sbin sieht so aus:

  • gibt es diese Option eventuell nur in der dev Variante?


    Momentan nur als Patch in den Paketen bei yaVDR.


    Lars.

  • Hallo,


    ich habe nun die Sourcen für yaVDR geladnen und den Patch "xprmtl-03_hide-first-recording-level-v3.patch:d51a7b41ef90771a2242841930645244" auf die Sourcen angewandt, hierbei trat ein Fehler bei vdr.c Hunk 2 soweit ich festgestellt habe ist die Poistion im Patch File falsch, daher führt er den Patch an dieser Stelle nicht aus.


    Ich habe dann die Änderung an dieser Stelle manuell eingetragen : Änderung bei hHi


    Code
    -  while ((c = getopt_long(argc, argv, "a:c:dD:e:E:g:hi:kl:L:mp:P:r:s:t:u:v:Vw:", long_options, NULL)) != -1) {
    +  while ((c = getopt_long(argc, argv, "a:c:dD:e:E:g:hHi:kl:L:mp:P:r:s:t:u:v:Vw:", long_options, NULL)) != -1) {


    Daraufhin stellte sich heraus, dass vdr ständig neu startet und im Syslog dieser Fehler auftaucht:
    Jul 24 15:14:59 Basti4 kernel: [ 107.970695] VDR VNSI Server[3136]:
    segfault at 20 ip 00007f28c4520c34 sp 00007f2897ffeda0 error 4 in
    libvdr-vnsiserver.so.2.0.6[7f28c44ff000+44000]


    ich habe daraufhin im Post [testing] Update auf vdr 2.0.6
    vn tkempken auf Seite 2 diesen Fehler als bereits beschrieben entdeckt und auch nachvollziehen können wenn die Video Verzeichnisse "local" und "archiv" leer sind passiert nichts aber sobald eines der beiden Verzeichnisse eine Aufnahme enthält startet vdr ständig neu.





    Viele Grüße


    Kitsab

  • Wenn Du Deinen VDR patchst musst in der Regel alle Deine Plugins neu übersetzen.
    Der Segault kommt vom Plugin libvdr-vnsiserver.so.2.0.6 .

    Gruß
    Frodo

  • Hallo,


    also ich habe die Plugins im Folder /vdr-2.0.6/PLUGINS/src, dann führe ich den Patch im vdr-2.0.6 Folder aus und baue das ganze mit sudo make plugins, sudo make install.


    Von daher sollten die Plugins eigentlich neu gebaut sein.

  • Hier ist sonst der Patch für den vanilla vdr 2.1.6. Der bei yaVDR ist natürlich auf die anderen Patches angepasst.
    Multiple Video-Verzeichnisse: freie Diskussion zu Konzepten, Patches, Lösungen und Wünschen


    In dem Thread findet sich auch noch etwas Info rund um diesen Patch und wofür er gedacht ist.


    Lars.

  • Von daher sollten die Plugins eigentlich neu gebaut sein.


    "Eigentlich"... Zur Not vorher einmal mit "make clean-plugins clean" (ggf. mit sudo, falls du make immer mit sudo aufrufst) bereinigen.


    Und dann nicht "make plugins", sondern einfach nur "make" aufrufen, dass sollte den vdr und die Plugins übersetzen. "make plugins" übersetzt nur die Plugins, aber nicht den vdr.
    (das make für das Übersetzen muss meistens nicht zwingend mit root-Rechten ausgeführt werden, nur das "make install").


    Lars.

  • Hallo,


    also dieses Forum ist ja echt spitze, so schnell wie ihr Antwortet und so gedulig wie ihr mit Anfängern seid, vielen Dank dafür!


    Bin aktuell am probieren, wenn es funktioniert melde ich mich nochmal.


    Viele Grüße und danke!


    Kitsab

  • Hallo,


    So nun funktioniert es im Grunde, der entscheidende Tip war Make
    clean-plugins clean (weil mir diese "clean-plugins" Geschichte nicht klar
    war).


    Ich habe nun den Ordner "local" und den Ordner "archiv" in meinem video Verzeichnis.


    Nur
    eine Sache ist mir jetzt noch nicht ganz klar, wenn ich nun manuell
    eine Aufnahme von /local nach /archiv verschiebe, dann lässt sich diese
    nicht direkt danach über das Aufnahme Menu aufrufen der Eintrag ist da
    aber XBMC leitet das meckern von vdr weiter "kann Indexdatei nicht
    erzeugen".


    Nach einem Neustart des Servers kann man die Aufnahme
    tadellos abspielen, gibt es hier ein Routine um eine Aktualisierung
    anzustoßen?


    Viele Grüße


    Kitsab

  • gibt es hier ein Routine um eine Aktualisierung
    anzustoßen?

    Der VDR bietet zwei Wegen an das Aufnahmeverzeichnis neu einzulesen - entweder über SVDRP

    Code
    svdrpsend updr

    oder indem du eine .update Datei im Aufnahmeverzeichis anfasst:

    Code
    touch .update

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo,


    danke nochmal für alles, nun funktioniert es wie es sein soll.


    Vielleicht kann ich euch zum Dank ein Script anbieten das ich in den letzten Stunden gebastelt habe (ja ich bin nicht so schnell...) :)


    Dieses Script verschiebt (kopiert und löscht) die Aufnahmen vom Vortag vom Quellverzeichnis in ein gewünschtes Archiv Verzeichnis, Sinn dahinter ist, dass man keine aktive Aufnahme kopieren/verschieben kann.


    Ich lasse das Script Nachts als Cronjob ausführen.



    Viele Grüße


    Kitsab

Jetzt mitmachen!

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