[markad] überarbeiteter Decoder

  • Auch mit dieser Version ist die Endeerkennung nur ungenügend. Hab hier mal ein Beispiel-Logfile angehängt für einen Film, der eigentlich doch sauber erkennbar sein sollte an den "vertical Borders". Der Start wird auch richtig erkannt. Das Ende ist dann aber wieder am Ende der Aufzeichnung (1:20:25.43) und nicht am Ende des Films (ca 0:59:01.49). Ich nehme immer mit 20min Nachlauf auf. Warum wird das Ende der "vertical Borders hier nicht richtig erkannt? In die marks Datei habe ich mal die wirkliche Endemarke mit eingetragen.


    Vielleicht kannst du das ja nochmal überprüfen, wenn du Zeit findest.

    Wenn du noch Infos brauchst oder die Aufzeichnung sag bitte Bescheid. Ich könnte die auf meinen FTP-Server legen.


    Gruß

    msv

  • Hallo msv

    die saubere Ende Erkennung ist wirklich noch ein Problem, das ich noch nicht zufriedenstellend lösen konnte. Oft geht es nicht besser, weil die nächste Sendung nahtlos beginnt. Grundsätzlich ist meine Strategie da auch, lieber zu spät, als mal das Ende abschneiden.


    Nach deiner Beschreibung der Aufnahme müsste aber eine korrekte Erkennung möglich sein. Wenn da wirklich bei ca. 0:59:01.49 ein Ende des vertical borders ist, wird der nicht erkannt und das würde ich dann auch gerne beheben.

    Das muss ich mir mal im Video selbst anschauen. Bitte stelle mir ein tar vom Aufnahmeverzeichnis auf deinen Server. Dann habe ich auch das info File und deine originalen time stamps, aus denen ich Vor- und Nachlauf berechne.


    Noch zwei weitere Anmerkungen:

    - du hast --saveinfo an, warum ? Das Plugin stammt ja nicht von mir, ich habe es nur irgendwann angefangen weiter zu entwickeln. Den Sinn dieser Funktion habe ich aber nie verstanden. VDR selbst wird schon wissen, was er da rein schreibt und wird das wohl auch richtig machen, oder ?

    - seit der Version 2.3 gibt es die Möglichkeit, VPS Events zusätzlich als Information für die Start/Ende Erkennung zu nutzen. Das kann man in der Plugin Konfiguration anschalten. Es funktioniert nur bei den ÖR Sendern, weil nur diese gültige VPS Events senden. In deinem Fall mit SWR hätte es funktioniert.

  • Hi,


    ich habs mal auf meinen FTP Server gelegt. Zugangsdaten gibts per PM.


    Wegen --saveinfo kann ich nicht sagen. Hat aber bisher nicht gestört. Ich benutze markad aber schon seit den ersten Tagen. Wird wohl mal in irgend einem Thread als Empfehlung gestanden haben.


    Gruß

    msv

  • msv

    Ich habe die Datei und auch den ersten Verdacht, warum das an dieser Aufnahme nicht funktioniert: Was soll der lila Streifen zwischen vertical border und Bild ab ca. 13:46 ???

    Ich werde mir das morgen näher anschauen, der ist schmal genug, dass ich ihn ignorieren können müsste.

  • Der erste Verdacht war falsch, die Erkennung vom vertical border funktioniert korrekt, trotz des lila Streifen.

    Der Fehler liegt in der Berechnung der Timestamps bei mehreren TS Files. Ein "+" zu viel und alle Zeiten ab der zweiten TS sind falsch.

    Code
    1. - pts_time_ms_LastFile += iFrameInfoVector.back().pts_time_ms;
    2. + pts_time_ms_LastFile = iFrameInfoVector.back().pts_time_ms;

    Mir ist das bei meinen eigenen Test nie aufgefallen, weil ich VDR nur als Backend nutze und die interne Schnittfunktion von markad verwendet die gleiche Funktion. Wenn man zwei Mal den gleichen Fehler macht, stimmt das Ergebnis wieder (manchmal).

    msv Vielen Dank für den Hinweis und für das Test Video, das hat mich auf die richtige Spur gebracht. Bitte teste mal die Version von

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

    ob die Schnittmarke jetzt auch auf der VDR Wiedergabe stimmt. Zumindest im marks File sieht es jetzt so aus, wie du oben geschrieben hast.

  • Das Ergebnis deiner Änderungen ist sehr gut. Ich habe markad jetzt mal über mehrere Aufnahmen laufen lassen. Die Ende Erkennung scheint jetzt meißtens richtig zu laufen, sofern sich am Ende wirklich etwas ändert.


    Danke für die Arbeit!

    msv

  • Eine neue Version 2.4.0 ist auf vdr-plugin-markad verfügbar.


    Neues Feature: Schon lange haben mich die Texte neben/unter den Logos (z.B. "Live" oder "neue Folge") beim Erzeugen des Logos aus der Aufnahme (--autologo) geärgert. Solange sie während der ganzen Sendung eingeblendet wurden, war es egal, aber das ist nicht immer der Fall. Sobald der Text nicht mehr eingeblendet wird, stimmen die weiteren Marken nicht mehr. Um das Problem zu lösen, erkennt markad jetzt den Text und schneidet ihn raus.


    Performance: Das Finden des Logos aus der Aufnahme (also --autologo=2 und kein passendes Logo im --logocachedir=...) braucht jetzt deutlich weniger Speicher und CPU. Damit müsste die Funktion auch besser auf nicht so leistungsfähigen System laufen. Wer sich der Aktualität seiner Logos nicht sicher ist, sollte versuchen, ob es jetzt nicht besser funktioniert mit --autologo=2 und --logocachedir=/tmp (absichtlich falsches Verzeichnis, damit markad alle Logos selber erstellen muss). Ich habe damit bei meinen Aufnahmen gute Erfahrungen gemacht.

  • Nein, gibt es nicht und wird es auch nicht geben: Einige Sendungen haben eigene Logos und wenn du zufällig so eines automatisch in den Cache kopieren würdest, geht ab da nichts mehr. Eine manuelle Endkontrolle ist notwendig.

    Aber warum überhaupt den Cache verwenden ? Die paar Sekunden zusätzliche Rechenzeit stören mich nicht.

    Und du musst darauf achten, dass die gespeicherten Logos aktuell bleiben. Die Sender ändern die manchmal.

  • Dank einiger Optimierungen ist das nicht mehr so tragisch. Kannst ja mal im Aufnahmeverzeichnis in die markad.log schauen, da steht in der aktuellen Version am Ende des Log Files drin, wie lange er für das Logo extrahieren gebraucht hat. Bei mir sind es im Durchschnitt 13s.

  • nach längerer ZEit hab ich auch mal wieder aktualisiert und bekomme es nicht mehr durch den xenial compiler.


    habe dann für Plugin uns Command Tool an einigen stellen diese Änderungen analog zu 2.1.2 (die hatte ich bisher) zurückgenommen und jetzt kompiliert es.



    bzw.



    Frage ist blauäugig ob es damit nur kompiliert oder auch funktioniert?


    danke

    Christian

    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
    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

  • Meine Entwickler Plattform ist focal, somit ist auch der Compiler einige Versionen neuer.

    Frage ist blauäugig ob es damit nur kompiliert oder auch funktioniert?

    Ja, müsste gehen, aber ich habe das trotzdem mal gefixed. Da waren auch noch einige warnings unter xenial drin. Und ich vermute mal, du hast nicht den VDR 2.2.0 aus der Distribution, weil damit sind noch mehr Compile errors drin.

    Teste mal bitte mit git clone -b V02 https://github.com/kfb77/vdr-plugin-markad.

  • ja auf den Clients auch aber auf dem Server ist noch immer xenial, vdr ist 2.4.1


    kompiliert jetzt durch, kam auch nur noch eine mini Warning:




    Danke dir!

    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
    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

  • kam auch nur noch eine mini Warning

    Den habe ich eigentlich auch gefixed. Hast du eine andere ffmpeg Version als üblich ?

    Das müsste original xenial drauf sein: