Markad
Inhaltsverzeichnis |
Aktuelle Version
Beschreibung
Autor: Jochen Dolze
Ein Programm zum automatischen Setzen von Schnittmarken bei Werbeeinblendungen während einer Sendung. Zusätzlich versucht markad noch den Start und das Ende einer Sendung zu erkennen, dies kann aber nur unter bestimmten Umständen richtig erfolgen und ist nicht Hauptaufgabe des Programms!.
Anschließend kann man beim Abspielen mit Hilfe der Schnittmarken die Werbung überspringen oder die Aufnahme schneiden lassen. Je nach Sender und Sendung ist die Erkennung jedoch nicht perfekt und sollte manuell kontrolliert/überarbeitet werden.
Funktionsweise
Merkmale für Marken
Great tihnnikg! That really breaks the mold!
HD-Material
- Änderung der Anzahl verwendeter Tonkanäle bei DolbyDigital Tonspuren (Werbung derzeit immer 2-Kanal)
- Schwarze, vertikale Balken bei Sendungen im Format 4:3 (Bildseitenverhältnis 16:9)
- Änderung des Logos
Beispiel für eine "HD"-Sendung im Format 4:3 bei einer Auflösung von 1920x1080i Die Werbeerkennung erfolgt hier aufgrund der vertikalen schwarzen Balken
Logoerkennung
Die Logoerkennung benötigt 4 Schritte:
- Dekodierung des Videostreams und Ausschnitt des interessanten Bildbereichs
- Kantendetektierung mittels Sobel-Operator
- Maskierung mit vorhandenem Logo
- Vergleich des Ergebnisses mit dem vorhandenem Logo (aus dem letztem Schritt)
Beispiel für eine Logoerkennung bei der nur die Luminanz-/Helligkeits-Information Y zur korrekten Erkennung benötigt wird. Das dritte Bild entspricht dem manuell Extrahiertem Logo (Option -L), das standardmäßig in /var/lib/markad zu finden ist
Wenn das Bild im Kontrast zum Logo zu hell ist, liefert die Kantendetektierung schlechte
Ergebnisse. Dann kann es vorkommen,
das ein Logowechsel nicht oder zuviel erkannt wird.
Probleme
markad kann den Anfang und das Ende einer Sendung markieren, dies erfolgt nach den gleichen Kriterien wie bei der Markierung von Werbeblöcken (wenn keine Start-/Endemarkierung erkannt werden kann wird der Zeitpunkt für den Timervorlauf/-nachlauf verwendet).
Bei folgenden Konstellationen liefert markad schlechte Ergebnisse bei der Start-/Endeerkennung:
- einer Sendung in 16:9/Stereo folgt eine weitere Sendung in 16:9/Stereo ohne Logounterbrechung
- einer Sendung in 4:3 folgt eine weitere Sendung in 4:3 ohne Wechsel des Bildseitenverhältnisses
Generell ist die Logoerkennung die schlechteste aller möglichen Erkennungsarten, denn:
- Senderlogos werden nicht am Beginn einer Sendung gezeigt, sondern n Sekunden später (bzw. hüpfen von der Mitte an die spätere Endposition), markad markiert aber erst bei sicher erkanntem Logo
- Einzelne Spots direkt vor dem eigentlichen Werbeblock werden mit Senderlogo ausgestrahlt, diese werden fälschlicherweise Teil der Sendung
Hardwareanforderungen
Keine
Softwareanforderungen
- VDR >= 1.6
- libavcodec >= 51 (für HDTV >= 52)
Installation
Konfiguration
Optionen
Kurz | Lang | Beschreibung |
---|---|---|
-b | --background | lässt markad als Hintergrundprozess laufen |
-d | --disable=<option> | Schaltet Dekodierungen ab (nur verwenden, wenn man weiss was man macht!)
1 = Videodekodierung abschalten, 2 = Audiodekodierung abschalten, 3 = Video- und Audiodekodierung abschalten |
-i | --ignoreinfo=<info> | Ignoriert Informationen aus der info-Datei
4 = Timerinfo ignorieren |
-l | --logocachedir | Verzeichnis der Vergleichslogos |
-p | --priority | Priorität wenn markad als Hintergrundprozess läuft [20...-20] default: 20 |
-r | --ioprio=<class>[,<level>] | I/O-Priorität wenn markad als Hintegrundprozess läuft
<class> 1 = Echtzeit (level 0-7, default: 4), 2 = Ausgewogen (level 0-7, default: 4), 3 = Leerlauf |
-v | --verbose | erhöht den Log-Level, kann mehrfach angegeben werden |
-B | --backupmarks | sichert eine vorhandene marks.vdr nach marks0.vdr |
-G | --genindex | erstellt einen Index, wenn der originale Index nicht vorhanden oder defekt ist |
-I | --saveinfo | speichert erkannte Änderungen in der info(.vdr) Datei (z.B. Anzahl Kanäle bei Dolbydigital) |
-L | --extractlogo=<direction>[,width,[height]] | extrahiert ein Logo von einer Aufnahme ins /tmp-Verzeichnis
<direction> 0 = links oben, 1 = rechts oben, 2 = links unten, 3 = rechts unten |
-O | --OSD | sendet eine OSD-Message an VDR für Start und Ende |
-R | --log2rec | speichert das Logfile ins Aufnahmeverzeichnis |
-T | --threads=<number> | Anzahl der Threads für libavcodec, max. 16 (default: Anzahl der CPUs) |
-V | --version | zeigt die Versionsnummer und beendet markad dann |
--loglevel=<level> | Setzt das loglevel auf einen bestimmten Wert 1=error 2=info 3=debug 4=trace | |
--markfile=<markfilename> | setzt einen anderen <markfilename>, nur für Testzwecke | |
--nopid | erstellt keine markad.pid Datei im Aufnahmeverzeichnis | |
--online={1,2} (default is 1) | Wenn dieser Parameter angegeben ist, wird markad bei Aufruf mit cmd=before bereits während der Aufzeichnung
gestartet. Ist --online=2 angegeben, passiert dies bei jeder Aufnahme, sonst nur bei live-Aufnahmen. Der Online-Scan startet ca. 10 Sekunden nach Beginn der Aufnahme und wird danach alle 15 Sekunden fortgesetzt. | |
--pass1only | Nur den ersten Durchgang (Marken setzen) | |
--pass2only | Nur den zweiten Durchgang (Überlappungserkennung) | |
--svdrphost | Zielrechner für OSD-Meldungen. Default: 127.0.0.1 | |
--svdrpport | Port für OSD-Meldung. Wird aus der /etc/services gelesen, default: 2001 |
Tipps
Schneidefunktion
Wer mit markad Werbung in Filmen markiert hat, sollte nicht unbesehen die Schneidefunktion in VDR für diesen Film aktivieren. Je nachdem, wie ein Sender Werbung einblendet, können einige Werbebilder erhalten bleiben oder einige Filmbilder zuviel rausgeschnitten werden. Auch am Anfang können Szenen verloren gehen, wenn z. B, der Film schon begonnen hat, aber der Text mit dem Vorspann erst später gezeigt wird.
Schnittmarken verschieben
Um das Schnittmarken zu verschieben, sollte man die Aufnahme starten und die einzelnen Schnittmarken mit den TastenWer ohne Kopie schneiden möchte, sollte sich cutinplace mal genauer anschauen.
Werbung überspringen
Für das überspringen der von markad erzeugten Schnittmarken, bei der Wiedergabe von Aufnahmen, empfiehlt sich der jumpplay-patch.