[markad] überarbeiteter Decoder

  • Das verstehe ich den Nutzen nicht. Warum nicht sowie jede Aufnahme mit markad auf dem Server bearbeiten ? Dann sind die Marken mal auf jeden Fall da und der Client kann es nutzen oder auch nicht. Falls es alte Aufnahmen ohne Marken gibt, dazu liegt im Source Code unter contrib ein Skript, dass markad auf ein Videoverzeichnis laufen lässt. Möchte man alle Marken, z.B. mit einer neuen Version, neu erstellen lassen, einfach überall marks löschen und wieder das Skript laufen lassen. Ich rufe das Skript aus cron.hourly auf, damit werden regelmäßig alle neuen Aufnahmen auf dem Server bearbeitet.

    der Nutzen ist das wenn ich zeitversetzt schaue, zB sone RTL drei Stunden Show 5 gegen Jauch oder was auch immer und ich schon während der Wiedergabe der laufenden Aufnahme Marken generieren möchte. Meist klappt da ja wenn man in sone Sendung ne Stunde später einsteigt dann ist man am Ende wieder "on time".

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • ofenheizer

    Ich habe eine Anleitung gebaut:

    Die fehlende Datei und die o.g. Anleitung findest du auf dem aktuellen Entwickler Branch im git:

    git clone -b V02 https://github.com/kfb77/vdr-plugin-markad

  • CKone

    OK, die Anwendung verstehe ich, aber warum dann nicht gleich grundsätzlich markad über das Plugin auf dem Server starten ?

  • mit der FB des client in der Hand, wie soll ich da das markad auf dem Server starten.


    über so ein script für eine dedizierte Aufnahme aus dem commands Menu des client aufgerufen, das genau diese Aufnahmen in einen online markad modus versetzt

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Das muss man doch nicht von Hand starten:

    Einstellungen -> Plugins -> markad -> Ausführung: während

    Dann startet der Server markad immer selbst, wenn eine Aufnahme gestartet wird.

  • CKone und ofenheizer

    Wenn ich das richtig verstanden habe, startet ihr markad aus einem eigenen Befehl in der Reccmds.conf. Zumindest habe ich im VDR Standard Menü nichts gefunden, mit dem man markad manuell starten könnte.

    Wenn ihr das unbedingt so beibehalten wollt, nur markad auf dem Server starten wollt, gibt es eine ganz einfache Lösung:

    Ändert in eurem Skript den Aufruf von markad <Pfad zur Aufnahme auf dem Client> in:

    svdrpsend -d <Server Name oder IP> PLUG markad mark <Pfad zur Aufnahme auf dem Server>

    Die Funktion markad über svdrpsend zu starten gab es schon immer.

  • jepp, wird über die reccmds.conf gestartet.

    ah, ok. das mit dem svdrpsend habe ich bei meiner suche nicht gefunden.

  • Eine neue Version 2.1.3 ist auf vdr-plugin-markad verfügbar. Es sind einige Bug Fixes und viele interne Code Optimierungen drin. Außerdem habe ich auch noch versucht, einen Beitrag zum Thema Speicherverbrauch zu leisten:

    - 14 Byte Leak pro Aufnahme gefixed (ok, nicht viel, aber Leak ist Leak)

    - zum Suchen eventuell vorhandener Leaks habe ich Code hinzugefügt, der sich merkt, für welche Variablen Speicher allokiert oder freigegeben wird. Der Code kann im Plugin Makefile durch Entfernen des Kommentars in der Zeile DEBUGMEMPLUGIN=1 aktiviert werden. Den Status kann man dann über svdrpsend abrufen:

    Code
    root@VDR-1804:~# svdrpsend PLUG markad DEBUGMEM
    220 VDR-1804 SVDRP VideoDiskRecorder 2.4.2; Fri Jun 12 10:36:47 2020; UTF-8
    900-markad: unmachted alloc   1 times       9 bytes, line   30, file markad.cpp, variable: bindir
    900-markad: unmachted alloc   1 times      16 bytes, line   33, file markad.cpp, variable: logodir
    900 markad: unmachted alloc   1 times   22600 bytes, line  217, file markad.cpp, variable: statusMonitor
    221 VDR-1804 closing connection

    Die Hauptfunktion steckt im, aus VDR Sicht externen Programm, markad. Das Plugin macht fast nichts und startet eigentlich nur markad beim Start einer Aufnahme. Es hat gerade mal 3 Variablen dynamisch allokiert. Beim Start einer Aufnahme kommen noch ein paar dazu, die am Ende der Aufnahme wieder frei gegeben werden.

    Einmal editiert, zuletzt von kfb77 ()

  • Klasse. Lobenswert, dass auch kleinste auf den ersten Blick triviale Bugs/Leaks gefixt werden. Ist ja immerhin alles Arbeit, die nicht entlohnt wird. Danke dafür.:thumbup:

  • Vielen Dank für das Lob.

    Durch den Speicherverbrauch Beitrag bin ich auf die Idee gekommen, auch mal cppcheck drüber laufen zu lassen. Da kam einiges dabei raus …

    Ich hoffe mal, ich habe damit nichts "kaputt gefixed".

  • Ich habe bei VOX (SD) sehr schlechte Marken. Ich frage mich wo ich ansetzen kann das zu verbessern.

    Ist ein einfache Datei ohne AC3 und mit gutem vorhandenem Logo.

    Jemand eine Idee?


    markad --cDecoder --astopoffs=0 --loglevel=3 -R --priority=19 --autologo=2 --backupmarks - after /video/@video/video0/James_Bond_007_-_Der_Hauch_des_Todes/2020-06-18.20.13.5-0.rec 

  • und ich habe bei 4 min Vorlauf und 6 Minuten Nachlauf meist sehr gute Marken nur fehlt fast immer die Endmarke (auch bei ÖR HD ), oder sie wird ganz am Ende gesetzt. - müsste man mal genauer prüfen.


    Hat sonst noch jemand so ein Verhalten?

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • CKone

    Ja das mit den Endmarken ist schwierig, weil oft wirklich kein Ende erkennbar ist und nahtlos die nächste Sendung beginnt. Dann setzte ich lieber die Marke ans Ende der Aufnahme, bevor ich das Ende abschneide. Man kann ja abschalten, wenn man sieht, dass die Sendung zu Ende ist. Wenn du mir mal ein Log File hast, wo man ein Ende erkennen kann (Logo fehlt lange genug, dass es erkennbar ist, Balken sind weg, Ton Kanäle ändern sich oder Bild Seitenverhältnis ändert sich) dann schaue ich gerne mal rein, ob ich hier noch was verbessern kann.

    Es würde auch noch einen anderen Ansatz zur Lösung des Problems geben: Zumindest die ÖR senden ein gutes VPS Signal mit einer recht zuverlässigen Start und Ende Informationen. Ich denke, die meisten von uns haben aber schon schlechte Erfahrungen mit VPS Aufnahmen gemacht. Wenn es dumm läuft, dann hat man keine Aufnahme.

    Ich hatte schon vor ein paar Wochen die Idee, im markad Plugin mir die VPS Events zu holen, zu prüfen und wenn sie sinnvoll erscheinen, als Start und Ende Information zu verwenden. Das Problem dabei ist nur, wenn epg2vdr installiert ist, werden die Events so umgebogen, dass ich sie nicht mehr zuordnen kann. Ich hätte dafür aber auch einen Vorschlag für einen Patch in epg2vdr. Ich werde aber keine Version meines Plugins releasen, dass abhängig ist von einem Patch in einem anderen Plugin, da mache ich mich bei den Distributoren unbeliebt ;)

    horchi: bitte melde dich mal hier, damit wir uns dazu austauschen können.

    Falls du Interesse hast meinem Prototypen zu testen, melde dich, dann push ich meinen Test Branch. Das zusätzliche Feature funktioniert aber nur bei ÖR, der Rest sendet willkürliche Start Events und keine Stop Events.

  • hondansx Wow, das Log sieht ja ganz seltsam aus.

    INFO: live-recording, disabling pre-/post timer

    ERROR: length of recording not found

    Die beiden Einträge dürften eigentlich nicht kommen.

    Bitte nochmals testen und Log File posten mit:


    markad --cDecoder --astopoffs=0 --loglevel=3 -R --priority=19 --autologo=2 --backupmarks nice /video/@video/video0/James_Bond_007_-_Der_Hauch_des_Todes/2020-06-18.20.13.5-0.rec


    "after" sollte eigentlich nur beim internen Aufruf durch das Plugin verwendet werden und dann statt "-" und nicht zusätzlich.

    Falls das nicht die Lösung bringt, versuche mit noch zusätzlich ----logocachedir=/tmp markad dazu zu zwingen, selbst ein Logo zu suchen. Vielleicht ist dein gespeichertes Logo nicht mehr aktuell.

  • hondansx

    Nachtrag: Und wenn das auch nichts bringt, beschreibe mal, wie du die Aufnahme gemacht hast, damit ich das reproduzieren kann. Ich vermute mal, du hast aus einer laufenden Sendung ein Aufnahme ohne Timer gestartet. Stimmt das ?

  • Also ich hatte letztens auch eine Timeraufnahme auf VOX (markad lief während der Aufnahme), wo ich markad stoppen musste und die gefühlt "100" Schnittmarken löschen, damit ich die Aufnahme anschauen konnte.

    Alle Serientimer werden bei mir per epgsearch gesetzt mit 5min Vorlauf und 10min Nachlauf.

    Wenn eine laufende Serienaufnahme angeschaut wird, dann mit soviel zeitverzögerung, dass mind. der erste Werbeblock übersprungen werden kann.

    Die betreffende Aufnahme habe ich später nochmals manuell durch markad laufen lassen, da waren die Schnittmarken dann in Ordnung.

  • ofenheizer

    Je nachdem wo du makad abbrichst, können die vielen Marken normal sein. In den ersten 12 Minuten und in den letzten 10 Minuten werden auch kurze schwarze Bildschirme als Marken gespeichert um damit zur Not den Anfang oder das Ende einer Sendung zu erkennen. Die werden aber nach 12 Minuten und am Ende wieder aufgeräumt. Ich nehme mal an, du hast das Log nicht mehr. Wenn du nächstes Mal wieder so was hast, bitte poste das Log.

  • markad hatte ich ja erst abgebrochen, als die vielen marken vorhanden waren. es waren aber definitiv mehr als 12min vergangen, habe auch extra noch etwas gewartet, ob da noch was aufgeräumt wird im laufe der zeit.

    nächtes log hebe ich mal auf.

Jetzt mitmachen!

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