[ANNOUNCE] markad 0.0.9

  • Hallo,


    hier nun eine "neue" Version von markad. Sie entspricht dem letzten GIT-Stand - und zwar vom master. Diese Version basiert nicht auf der devel-Version, sondern auf der 0.0.8 mit ein paar Änderungen aus dem devel-Zweig.


    markad versucht die Werbung einer Aufnahme zu markieren. Es kommt mit allem zurecht, ob PES/TS (.vdr/.ts), ob H262 oder H264 (SD/HD). Das bedeutet es werden auch Marken für HD-Aufnahmen gesetzt!


    markad kommt in zwei Teilen daher: Ein Plugin und ein Standalone-Programm.


    Das Standalone-Programm kann als Drop-In-Replacement für Noad verwendet werden (oder auch nicht..). Die Kommandozeilenparameter sind von Noad übernommen mit einem Unterschied: Bei Noad musste man als Anwender immer wissen was getan sollte, bei markad weiss markad (also im Endeffekt ich) am Besten was getan werden sollte, d.h. die meisten Optionen sind angeschaltet und können bei Bedarf abgeschaltet werden.


    Wird das Plugin verwendet, dann kann man markad damit überwachen, pausieren und weiterlaufen lassen. Desweiteren können im Setup verschiedene Optionen des Standalone-Programms ein- und ausgeschaltet werden sowie das Startverhalten festgelegt werden.


    Standardmäßig wird das Standalone-Programm in /usr/bin installiert, Logos werden aus /var/lib/markad gelesen.


    Liegt für einen Sender kein Logo vor (erkennbar in den Logdateien), so kann aus einer Aufnahme mittels -L ein Logo extrahiert werden. Die Dateien werden dann ins /tmp-Verzeichnis gespeichert wo man dann ein Geeignetes heraussuchen muss. Das ist nun nicht so komfortabel, aber im schlimmsten Fall kann auch ich eins machen (sofern ich den Sender empfange, ansonsten eben über Dateien). Für die meisten privaten, deutschsprachigen FTA-Sender mit Werbeunterbrechungen sind Logodateien vorhanden.


    NFS-Unterstützung ist noch ein offener Punkt, siehe http://vdr-portal.de/board/thr…?postid=978846#post978846


    aktuelle Version: http://projects.vdr-developer.org/projects/plg-markad/files


    Weitere Infos im Wiki: http://vdr-wiki.de/wiki/index.php/Markad-plugin


    Git: http://projects.vdr-developer.…ugin-markad.git;a=summary


    Bugreports: http://projects.vdr-developer.org/projects/plg-markad/issues


    Bugreports bitte immer mit Log (wenn vorhanden)...


    Änderungen zur 0.0.8:


    [list=1]
    [*]Overlap verbessert
    [*]F-Parameter wird jetzt nicht mehr intern korrigiert
    [*]Option "AC3 immer scannen" entfernt
    [*]Option "korrigiere info Datei" hinzugefügt, automatisches Ändern der info-Datei gibt es nun nicht mehr
    [*]Neue Default-Einstellungen: "repariere defekten Index"=aus, "korrigiere Info Datei"=aus
    [*]Spanische Übersetzung von jbjbjb hinzugefügt
    [*]Neue Logos hinzugefügt (private HD-Sender)
    [/list=1]


    Gruß


    Joe_D

  • Hi,


    wie kommt man sonst an die Logo's wenn was neues dazukommt?

    Gruß utiltiy



    VDR Projekte VDR Projects

  • Ich hatte das Problem das bei der Option "mit Logo" eine ZDF Aufnahme nicht behandelt wurde.
    Nachdem ich wieder "ohne Logo" eingestellt habe werden diese Aufnahmen wieder bearbeitet.


    Oder habe ich einen Denkfehler wegen der Logogeschichte?

    Gruß utiltiy



    VDR Projekte VDR Projects

  • Meine marks.vdr sehen ungefähr so aus


    0:-19:-14.11 detected start of horiz. borders (28860 [28875])
    0:-19:-18.04 detected stop of horiz. borders (28953 [28962])
    0:-20:-19.03 logo start (30477)
    ....



    Sind also nicht zu gebrauchen, wegen Formatierungsfehler o.Ä., die Minuszeichen gehören da nicht hin.


    Ist das nur bei mir so ?

  • Copperhead


    Zitat

    ProSieben zb. zeigt bei Beginn der Sendung das Logo erst mittig an. Könnte man das auch schon erkennen? --> Zusätzliche Logo-Dateien

    Vielleicht? Wäre aber ein ziemlich großer Aufwand, der nur für Stereo/16:9-Aufnahmen greifen würde.


    Statt einen Bereich (bei SD) von 100x100 Pixeln zu untersuchen müsste immer wenn kein Logo erkannt wurde der Bereich auf 100x576 Pixel aufgeblasen werden (um höchstmögliche Flexibilität zu gewährleisten). Statt einem Vergleich müssten dann z.B. 500 Vergleiche durchgeführt werden und das pro untersuchtem Bild. Oder ich füge ins Logo eine Y-Position ein (hinter dem #C1 was für rechts oben steht), an der das Logo stehen kann, dann wären nur zwei Vergleiche nötig und auch der Bereich könnte dann evtl. kleiner als 576 Pixel sein.


    Demgegenüber steht das manuelle Verschieben der Marke um ein paar Sekunden.


    Gruß


    Joe_D

  • Zitat

    In Zeile 606 der command/streaminfo.cpp ist ein Bug. Statt -fps muss es fps heissen.


    Vielen Dank!



    Ich habe noch einen Beitrag zum Schonen von Resourcen:
    Wenn ein Timer mal wieder auf der primären Karte gestartet ist, restarte ich den Timer oft, damit das Aufnahme-Device gewechselt wird. Dann wird ein neuer markad-Job gestartet, also haben wir nun 2.
    Eine Abfrage vor dem Start ist bestimmt sinnvoll.


    Gruß

  • Ich habe hier noch etwas zu NFS und dem erkennen der Startzeit gefunden. In meinem Fall speichert der VDR die Aufnahmen in einem lokalen Ordner der eigenen Festplatte. Dieser ist jedoch über NFS exportiert und auf anderen Systemen eingebunden.


    Ich habe die markad standalone testweise auf einem dieser Systeme kompiliert und installiert. Das klappt soweit ganz gut, allerdings schafft er es nicht die Startzeit zu erkennen. Er stolpert über die Erkennung des Mount-Flags NOATIME in cMarkAdStandalone::GetBroadcastStart(). Fallbacks macht er keine. Die Freigabe ist übrigens nicht mit NOATIME eingebunden.


    Ich habe diesen Teil der Erkennung mal auskommentiert, und jetzt erkennt er die Startzeit der Aufnahme. Was spricht eigentlich dagegen die Startzeit aus dem Wert "V" (bzw. dem 2. Wert von "E") aus der Info-Datei auszulesen? Das ist ja ein Unix-Timestamp der "offiziellen" Startzeit.

    Hardware: Point of View ION/ATOM330, 2GB, 160GB (Lokal), 2TB über NFS, Hauppauge Nova-T Stick (2040:7070), SoundGraph IMON (15c2:0036 VFD)
    System: Debian Squeeze, Kernel 3.1.2 (self build), Nvidia 285.05.09, lcdproc 0.5.5, lirc 0.9.0
    VDR: vdr 1.7.21 (etobi) + xvdr (git), xineliboutput, markad
    XBMC: opdenkamp PVR branch (git)

    Einmal editiert, zuletzt von Telperiar ()

  • Telperiar


    Zitat

    Er stolpert über die Erkennung des Mount-Flags NOATIME in cMarkAdStandalone::GetBroadcastStart(). Fallbacks macht er keine. Die Freigabe ist übrigens nicht mit NOATIME eingebunden.

    Ja aber woher hat er dann das noatime?


    Zitat

    Dann wird ein neuer markad-Job gestartet, also haben wir nun 2.

    Ja aber nur, weil ich da noch einen Bug drin habe! Und zwar muss es in status.cpp, Zeile 129 anstatt Timer->Stop() eher Timer->StopTime() heissen.


    Gruß


    Joe_D

  • Zitat

    Original von Joe_D
    Telperiar


    Ja aber woher hat er dann das noatime?


    Ich habe mal genauer in den Code geschaut, bisher habe ich das nur grob eingegrenzt. Hier mal ein Auszug aus meiner mount:

    Code
    /dev/sda1 on / type ext4 (rw,noatime,nodiratime,discard,errors=remount-ro,commit=0)
    ...
    192.168.1.201:/mnt/volume01/pool/users on /home type nfs (rw,nosuid,nodev,rsize=8192,wsize=8192,timeo=14,hard,nolock,addr=192.168.1.201)
    192.168.1.200:/var/lib/video on /mnt/recordings type nfs (rw,nosuid,nodev,rsize=8192,wsize=8192,timeo=14,hard,nolock,addr=192.168.1.200)


    Die Aufnahmen befinden sich in "/mnt/recordings", das im Gegensatz zu "/" nicht mit noatime gemountet wird. Wenn ich den Code der Zeilen 1803-1819 richtig verstehe sucht er so lange die mounts durch bis der Path zu den Aufnahmen passt. Nur "dummerweise" in der falschen Richtung. Denn er prüft ob der Path der Mount im Path der Aufnahme vorhanden ist, und das ist sie bereits bei "/". Korrekt wäre es genau umgekehrt. also muss es statt ...

    Code
    if (strstr(directory,ent->mnt_dir))


    so lauten ...

    Code
    if (strstr(ent->mnt_dir,directory))


    PS ich musste bei der 0.0.9, wie in der 0.0.8 die include for math nachrüsten ...

    Code
    #include <math.h>

    Hardware: Point of View ION/ATOM330, 2GB, 160GB (Lokal), 2TB über NFS, Hauppauge Nova-T Stick (2040:7070), SoundGraph IMON (15c2:0036 VFD)
    System: Debian Squeeze, Kernel 3.1.2 (self build), Nvidia 285.05.09, lcdproc 0.5.5, lirc 0.9.0
    VDR: vdr 1.7.21 (etobi) + xvdr (git), xineliboutput, markad
    XBMC: opdenkamp PVR branch (git)

  • Telperiar


    Ich denke so funtkioniert es:



    Kannst Du das ausprobieren?


    Gruß


    Joe_D

  • Joe_D


    Ja so gehts, da habe ich gestern offenbar die Parameter von strstr durcheinander gebracht :)

    Hardware: Point of View ION/ATOM330, 2GB, 160GB (Lokal), 2TB über NFS, Hauppauge Nova-T Stick (2040:7070), SoundGraph IMON (15c2:0036 VFD)
    System: Debian Squeeze, Kernel 3.1.2 (self build), Nvidia 285.05.09, lcdproc 0.5.5, lirc 0.9.0
    VDR: vdr 1.7.21 (etobi) + xvdr (git), xineliboutput, markad
    XBMC: opdenkamp PVR branch (git)

Jetzt mitmachen!

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