[Gelöst] Schnitt von Aufzeichnungen auf dem VDR-Server durch VDR-Client triggern?

  • Ist es möglich, das Schneiden von Aufzeichnungen auf dem VDR-Server durch einen VDR-Client anzustoßen? Hintergrund ist, dass ich auf dem VDR-Client (auf einem Raspberry) die Schnittmarken setze bzw. korrigiere und dann natürlich den Schnitt nicht vom Raspberry erledigen lassen möchte. ;) Vielmehr suche ich nach einer Möglichkeit, dem Server zusagen, dass Aufzeichnung X jetzt bereit zum Schneiden ist und er sie jetzt schneiden soll.


    Lösung: siehe Beitrag weiter unten

    Server:  (K)VM on Proxmox 4.x-Host, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) auf Debian 8 (Jessie), 1x Digital Devices Cine S2 (V6) + DuoFlex S2
    Clients: Raspberry Pi 2/3 mit Raspbian, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) als Streamdev-Clients

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von atl ()

  • Mit Remotetimers-plugin oder Peer-plugin sollte das gehen


    vdr-User-# 755 to_h264 chk_r

  • Remotetimers-plugin

    Das habe ich mir schon angeschaut. Allerdings ist die Performance auf einem Raspberry Pi als VDR-Client nicht berauschend. Wenn das Plugin das Aufzeichnungsmenü ersetzt, dann dauert das Öffnen eines Aufzeichnungsverzeichnisses mehrere Sekunden im Gegensatz zum "lokalen" Menü. Und wenn ich in dem Plugin eine Aufzeichnung auf dem Server schneide, dann habe das Gefühl, das erledigt trotzdem der Client (100% CPU-Auslastung des Pi). :S

    Server:  (K)VM on Proxmox 4.x-Host, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) auf Debian 8 (Jessie), 1x Digital Devices Cine S2 (V6) + DuoFlex S2
    Clients: Raspberry Pi 2/3 mit Raspbian, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) als Streamdev-Clients

  • Vielmehr suche ich nach einer Möglichkeit, dem Server zusagen, dass Aufzeichnung X jetzt bereit zum Schneiden ist und er sie jetzt schneiden soll.

    Man könnte sich z.B. ein Skript schreiben, das regelmäßig das Aufnahmeverzeichnis durchsucht und den vdr eine Aufnahme scheiden lässt, wenn sich eine .cut Datei im Verzeichnis befindet.

    Shell-Script
    1. #!/bin/sh
    2. videodir=/srv/vdr/video/
    3. while :; do
    4. find "$videodir" -name .cut -type f -exec sh -c 'recpath=$(dirname "$1"); rm "$1"; vdr --edit="$recpath"' _ "{}" \;
    5. sleep 60
    6. done


    Die .cut Datei kann man z.B. über die reccmds.conf am Client erzeugen lassen:

    Code
    1. Zum Schneiden markieren: touch "$1/.cut"

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von seahawk1986 ()

  • Man könnte sich z.B. ein Skript schreiben

    Genau das habe ich gesucht! :D Die Lösung schaut super aus und ich denke, dass das den alten Raspberry Pi nicht überfordern wird. :D

    Server:  (K)VM on Proxmox 4.x-Host, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) auf Debian 8 (Jessie), 1x Digital Devices Cine S2 (V6) + DuoFlex S2
    Clients: Raspberry Pi 2/3 mit Raspbian, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) als Streamdev-Clients

  • Es funktioniert tatsächlich und das sogar ohne Performanceeinbußen auf dem Raspberry Pi als VDR-Client! :D Dass man dem VDR noch Parameter mitgeben kann, daran habe ich gar nicht gedacht. Für alle die's interessiert hier meine Lösung, welche auf den obigen Skriptbeispielen von seahawk1986 (nochmals vielen Dank!) basiert und als Basis auf die VDR-Konfiguration mit Hilfe von YaVDR-Paketen aufbaut.


    Server-Skripte
    Das Skript liegt unter /opt/scripts/triggercut:


    Folgendes Startskript liegt unter /etc/init/triggercut.conf:

    Code
    1. description "cutting recordings based on trigger file"
    2. start on started vdr
    3. stop on stopped vdr
    4. exec sudo -u vdr -g vdr /opt/scripts/triggercut


    Client-Skripte
    Das Skript zum Triggern des Schneidens vom Client aus liegt unter /opt/scripts/mark4cut:

    Shell-Script
    1. #!/bin/sh
    2. /usr/bin/touch ${1}/cutme


    Und damit der VDR-Client das auch kennt, muss noch folgender Eintrag in die RecordingsCommands (beim YaVDR unter /usr/share/vdr/command-hooks/reccmds.custom.conf):

    Code
    1. Zum Schneiden markieren: /opt/scripts/mark4cut


    Danach erzeugt eine Ausführung des Befehls (Rote FB-Taste im Aufnahmeverzeichnis) die Triggerdatei innerhalb des Aufnahmeverzeichnisses, nach der vom Skript auf dem Server regelmäßig gesucht wird. Findet dieses eine Triggerdatei, dann wird dieses gelöscht und die Aufnahme geschnitten. Legt man das Client-Skript auch auf dem Server an und trägt es in die Recording-Commands ein, so kann man auch über den VDRadmin mehrere Aufnahmen in einem Rutsch schneiden lassen. :D

    Server:  (K)VM on Proxmox 4.x-Host, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) auf Debian 8 (Jessie), 1x Digital Devices Cine S2 (V6) + DuoFlex S2
    Clients: Raspberry Pi 2/3 mit Raspbian, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) als Streamdev-Clients

  • Oder man triggert es über ein UDP-Signal an statt das zeitgesteuert zu machen - für den avahi-linker habe ich so etwas schon für die .update Datei des VDR umgesetzt:
    https://github.com/yavdr/vdr-a…sr/bin/vdr-update-monitor
    https://github.com/yavdr/vdr-a…r/usr/bin/vdr-net-monitor


    Das könnte man dann ja auch auf ein Anfassen einer .cut Datei im Aufnahmeverzeichnis reagieren lassen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)