Plugin remotetimers - Start des Serverseitigen Schneidens dauert lange

  • Hi,


    Beim Aufbau meines Headless yaVDR bin ich noch eine etwas unschöne Geschichte gestossen. Nachdem ich svdrpservice, remotetimers und remoteosd auf den clients konfiguriert hatte hat alles soweit gut funktioniert. Einzig das Serverseitige Schneiden macht mir Probleme.


    Ich habe die Aufzeichnung auf dem Client geöffnet und die marks entsprechend gesetzt. Danach habe ich mit Editieren (rot) und Schneiden (grün) das externe Schneiden gestartet. Im log des headless Servers konnte man sehen dass eine svdrp Verbindung aufgebaut wurde. Nach 10 Sekunden (command timeout) hatte ich auf dem headless Server ein Fehler.


    Code
    ERROR (svdrp.c,433): Datenübergabe unterbrochen (broken pipe)


    Auf dem client:

    Code
    Apr  8 12:43:38 yavdr-wz vdr: [6326] loading /srv/vdr/video.00/Serien/Fantasy/EUReKA_-_Die_geheime_Stadt/Season_05/05~01_Die_Zeitverschiebung/2013-03-13.20.10.72-0.rec//marks
    Apr  8 12:43:39 yavdr-wz vdr: [6326] SvdrpService: connected to 192.168.1.5:6419
    Apr  8 12:43:49 yavdr-wz vdr: [6326] svdrpservice: timeout waiting for reply from 192.168.1.5
    Apr  8 12:43:49 yavdr-wz vdr: [6326] ERROR: Lost SVDRP connection - unable to start remote cutter
    Apr  8 12:43:51 yavdr-wz vdr: [6326] svdrpservice: unable to send command to 192.168.1.5. Socket is closed


    Gehe ich nun her und stelle in den Optionen des SvdrpService Plugins Command Timeout auf 30 Sekunden ein. Funktioniert das ganze. Im Schnitt dauert es 15-20 Sekunden bis das Schneiden auf dem Server beginnt.


    Code
    Apr  8 12:47:02 yavdr-hl vdr: [2849] connect from 192.168.1.6, port 49345 - accepted
    Apr  8 12:47:16 yavdr-hl vdr: [2849] loading /srv/vdr/video.00/Serien/Fantasy/EUReKA_-_Die_geheime_Stadt/Season_05/05~01_Die_Zeitverschiebung/2013-03-13.20.10.72-0.rec//marks


    Ist diese Zeit normal? Kann mir das kaum vorstellen. Es ist übrigens egal ob ich eine HD Aufnahme über 3 Stunden schneiden möchte oder eine SD Aufnahme von 30 Minuten. Die Zeit liegt immer zwischen 15-20 Sekunden bis das Schneiden gestartet wird.

    WZ: yaVDR (0.5): Gigabyte GA-MA78GM-S2H / AMD 240e / LianLi PC-C50B / atric & Harmony 650 / 2GB G.Skill 800 / 2x TT S2-1600 1x TT S2-3600 / 60GB OCZ Vertex2 / Gainward G210 passiv
    AZ: yaVDR (0.5): PoV 330-1 (Atom/ION) / MS-Tech MC-1200/ 2GB Kingston VR 800 / TT S2-1600 / OCZ SSD Onyx 32GB / atric & Harmony 600
    EZ: Raspberry Pi - OpenElec
    HL: GA-MA78GM-S2H / AMD 5050e (@1.1V) / 2x DVBSky S952 Dual / 64 GB SanDisk SDSSDP-064G-G25 / 4 GB RAM / BQT E9
    NAS: Synology DS-1511+ (DSM 4.2) / 5x2TB Samsung F4 / Raid 5 / Smargo / Oscam / APC Back-Ups cs 350

  • Ist diese Zeit normal?


    Das kommt darauf an, was sonst noch so über svdrp auf deinen Server zugreift - die Schnittstelle ist nur für einen einzigen Client ausgelegt.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Speziell zum testen passiert zu diesem Zeitpunkt auf dem Server nichts. Also weder Aufnahmen nocht Suchtimer noch Streamdev. Er langweilt vor sich hin.


    Habe den Schnitt von einem Client mit eigener TV-Karte gestartet. Eben weil die Schnittstelle ja immer nur einen Client bedienen kann sollte doch nach dem Connect der ja Erfolgreich ist nichts dazwischen funken. Ich gehe also davon aus dass es 20 Sekunden benötigt die entsprechenden Anweisungen vom Client auf den Server zu bekommen um dort den Schnitt zu starten. Das scheint mir doch sehr lange.

    WZ: yaVDR (0.5): Gigabyte GA-MA78GM-S2H / AMD 240e / LianLi PC-C50B / atric & Harmony 650 / 2GB G.Skill 800 / 2x TT S2-1600 1x TT S2-3600 / 60GB OCZ Vertex2 / Gainward G210 passiv
    AZ: yaVDR (0.5): PoV 330-1 (Atom/ION) / MS-Tech MC-1200/ 2GB Kingston VR 800 / TT S2-1600 / OCZ SSD Onyx 32GB / atric & Harmony 600
    EZ: Raspberry Pi - OpenElec
    HL: GA-MA78GM-S2H / AMD 5050e (@1.1V) / 2x DVBSky S952 Dual / 64 GB SanDisk SDSSDP-064G-G25 / 4 GB RAM / BQT E9
    NAS: Synology DS-1511+ (DSM 4.2) / 5x2TB Samsung F4 / Raid 5 / Smargo / Oscam / APC Back-Ups cs 350

  • Das Problem tritt bei mir auch immer wieder auf. Da ich es aber sonst von noch niemandem gehört hatte, hatte ich mich noch nicht näher damit auseinander gesetzt. Nur ganz selten klappt das Schneiden mit "grün" sofort. Wenn die Timeout Fehlermeldung kommt und ich den Schnitt nochmal mit "grün" starte, klappt es aber immer und recht zügig. Der Timeout steht bei mir übrigens auf 10 Sekunden.


    Remotetimers schickt nur zwei Befehle: LSTR (um die Nummer der Aufnahme zu finden) und EDIT NUMMER (Aufnahme schneiden). Das vermutliche Problem: Bei LSTR liest VDR erst die Aufnahmen neu ein - das kann je nach Anzahl der Aufnahmen und Geschwindigkeit der Platten schonmal dauern und ist dank Plattencache vermutlich beim nächsten Aufruf schneller. Und dann muss die Liste natürlich auch noch über das Netz übertragen werden. Wie lange dauert es denn bei Dir, wenn Du LSTR mit svdrpsend oder per telnet ausführst? Wenn meine Theorie mit dem Cache stimmt, sollten kurz aufeinander folgende LSTR-Befehle schneller gehen. Selbiges dürfte auch unmittelbar nach dem Starten des VDR gelten, da VDR die Aufnahmen auch erstmal einliest und somit in den Cache legt.

  • Aha das erklärt das ganze.


    Ich habe in einem extra Thread schon mal nachgefragt warum das aktualisieren der Aufnahmen so langsam geht. Da es sich hierbei im Endeffekt um die selbe Funktion handelt erklärt sich das Verhalten des Plugins auch.


    Ich habe ca. 5 TB an Aufnahmen auf meinem NAS. Die meisten sind Serien. Im NAS werkeln 5x 2TB 5400er Platten die natürlich nicht die schnellsten sind. Außerdem gehen die Platten in Standby wenn es keine Zugriffe gibt.


    Ich habe das eben mal reproduziert


    1. Der erste Aufruf von svdrpsend LSTR gab einen timeout. Die Platten mussten ja erst noch hoch gefahren werden.
    2. svdrpsend LSTR direkt im Anschluss gab ein Teil der Liste wurde jedoch auch mit einem timeout beendet. Die Platten waren wohl noch nicht fertig.
    3. Wieder svdrpsend LSTR im Anschluss hat dann das erwartete Ergebnis gebracht. Dauert allerdings auch um die 10 Sekunden. Damit sollte ich dann auf die 15 Sekunden die ich oben beschrieben habe kommen.


    Ich habe Interesse halber den Befehl 20x hintereinander ausgeführt und so jedes 10te mal hatte ich wieder einen timeout. Aber das nur btw.


    Ich vermute das LSTR ist dazu du um die Aufnahme für das plugin aktuell zu halten? Im Prinzip funktioniert das aber immer noch besser wie das lokale Schneiden. Hier wird mein System bei großen HD Aufnahmen zum Teil Minuten blockiert.


    Edit:
    Vom client aus erhöht sich die Zeit nochmal um ca. 5 Sekunden. Zusammen ergibt das die Summe von oben.

    WZ: yaVDR (0.5): Gigabyte GA-MA78GM-S2H / AMD 240e / LianLi PC-C50B / atric & Harmony 650 / 2GB G.Skill 800 / 2x TT S2-1600 1x TT S2-3600 / 60GB OCZ Vertex2 / Gainward G210 passiv
    AZ: yaVDR (0.5): PoV 330-1 (Atom/ION) / MS-Tech MC-1200/ 2GB Kingston VR 800 / TT S2-1600 / OCZ SSD Onyx 32GB / atric & Harmony 600
    EZ: Raspberry Pi - OpenElec
    HL: GA-MA78GM-S2H / AMD 5050e (@1.1V) / 2x DVBSky S952 Dual / 64 GB SanDisk SDSSDP-064G-G25 / 4 GB RAM / BQT E9
    NAS: Synology DS-1511+ (DSM 4.2) / 5x2TB Samsung F4 / Raid 5 / Smargo / Oscam / APC Back-Ups cs 350

  • Zitat

    Ich vermute das LSTR ist dazu du um die Aufnahme für das plugin aktuell zu halten?


    Nein. Der EDIT-Befehl, mit dem der Schnitt gestartet wird, erwartet als Parameter die Nummer der Aufnahme. Die wiederum erhalte ich nur über den LSTR-Befehl. Lässt sich also leider (mit den derzeitigen SVDRP-Befehlen) nicht vermeiden.

  • Ok. Das ist natürlich in den Größenregionen in denen ich mich bewege eher ungünstig. Da aber laufend Aufnahmen dazu kommen wird das vom Prinzip her noch langsamer werden. Gerade da LSTR oft zu einem timeout führt... warum auch immer. Gemountet ist das ganze übrigens via NFS über Gigabit LAN.


    Jemand eine Idee wie ich dem etwas entgegen wirken könnte?


    btw:
    Aktuell habe ich um die 3000 Aufnahmen und zusätzlich nochmal um die 600GB avis auf dem NAS.

    WZ: yaVDR (0.5): Gigabyte GA-MA78GM-S2H / AMD 240e / LianLi PC-C50B / atric & Harmony 650 / 2GB G.Skill 800 / 2x TT S2-1600 1x TT S2-3600 / 60GB OCZ Vertex2 / Gainward G210 passiv
    AZ: yaVDR (0.5): PoV 330-1 (Atom/ION) / MS-Tech MC-1200/ 2GB Kingston VR 800 / TT S2-1600 / OCZ SSD Onyx 32GB / atric & Harmony 600
    EZ: Raspberry Pi - OpenElec
    HL: GA-MA78GM-S2H / AMD 5050e (@1.1V) / 2x DVBSky S952 Dual / 64 GB SanDisk SDSSDP-064G-G25 / 4 GB RAM / BQT E9
    NAS: Synology DS-1511+ (DSM 4.2) / 5x2TB Samsung F4 / Raid 5 / Smargo / Oscam / APC Back-Ups cs 350

  • Der Timeout bei LSTR ist aber auch nix ungewöhnliches. Habe ich auch bei meinem mit 1000 Aufnahmen auf der lokalen HDD.


    Es fällt auch das die HDD beim ersten Aufruf rumrattert, beim zweiten nicht.


    Edit: LSTR stöst nen Update der Aufnahmeliste an (also "touch .update"), das erklärt die lange Laufzeit. Beim zweiten mal werden die Sachen noch im Dateisystemcache sein.
    Kannst ja mal in svdrp.c das testweise entfernen
    ---
    recordings.Update(true);
    ---


    cu

  • Kann man da nicht besser extern den VDR als Cutter verwenden ? (Sprich: vdr --cut .... als externen Befehl zum schneiden verwenden ?)
    Darüber könnte man die Schnittwarteschlange auch ausserhalb des VDR machen ;)


    Ansonsten sollte der VDR eindeutige ID's sowohl für Timer als auch andere Resourcen wie Aufnahmen verwenden. Zumindest zur Laufzeit sollten sich die IDs nicht ändern. Dann müsste die Aufnahmeliste nur einmal geholt werden. Oder wenn die ID persistent ist (in der info steht) müsste sie garnicht geholt werden.

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Kann man da nicht besser extern den VDR als Cutter verwenden ? (Sprich: vdr --cut .... als externen Befehl zum schneiden verwenden ?)
    Darüber könnte man die Schnittwarteschlange auch ausserhalb des VDR machen ;)


    Vernünftige Idee.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

Jetzt mitmachen!

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