ScanForLogo
Kurzbeschreibung:
Ein TAP das nach dem Senderlogo anhand der manuellen Bereichsauswahl und verschiedener einstellbarer Kriterien sucht, um Bookmarks für das Überspringen von Werbung zu setzen.
Mit dem MovieCutter TAP von FireBird könnte man dann diese Bookmarks importieren und müsste die Werbung damit entfernen können.
ScanForLogo bietet aber auch für die Wiedergabe eine Funktion an, die kein Schneiden erfordert und die Werbung einfach anhand der Bookmarks überspringt.
Konzept:
Werbung überspringen ... - ein Traum(a).
- anhand des Seitenverhältnisses oder der schwarzen Balken - klappt vermutlich nur bei Kinofilmen
- anhand der Veränderung der Tonspur - hilft nichts wenn Werbung und Film in DD2.0 sind
- anhand der Logo-Erkennung - ja, meinen Beobachtungen nach ist dies eine potentiell zuverlässige Methode, Werbung kommt, Logo geht sowie Werbung geht, Logo kommt
Die weiteren Details folgen nun als Buttons, da sie teilweise sehr ausführlich sind.
Beschreibung der Logo-Erkennung:
Folgendermaßen werden bei diesem TAP die Logos erkannt:
Einfache Beschreibung:
In einem manuell als Referenzbild aufgenommenem Logo werden Referenzpixel ermittelt (i.d.R. der gleichfarbige und gleichhelle Bereich des Logos), für die überprüft wird, dass sie gegenüber dem aktuellen Bild eine ähnliche Helligkeit haben bzw. die Summe der Pixel mit einer nahezu ähnlichen Differenz im Pixelwert relativ hoch ist bzw. ausreichend viele Helligkeitsdifferenzen an den Logorändern auftreten.
Detaillierte Beschreibung:
01. Es wird nur der ausgewählte Bereich überprüft.
02. Nachdem ein Logo mit mittlerer und gleichmäßiger Hintergrundhelligkeit aufgenommen wurde (Referenzbild für den Vergleich),
03. wird dann anhand der einstellbaren Mindesthelligkeit (ValuePixNeighbor) wiederum der Vergleich auf bestimmte Pixel eingegrenzt,
04. die des Weiteren nur dann in Betracht gezogen werden, wenn ihr linker und rechter Nachbarpixel eine gewisse Differenz im Pixelwert (DeltaPixNeigbor) nicht überschreiten (d.h. also ähnlich hell sind).
05. Diese ausgewählten Referenzpixel werden im Detailbild in Magenta hervorgehoben und sollten dem Bereich entsprechen, in dem sich der helle Teil des Senderlogos befindet, d.h. diese beiden Werte müssen so angepasst werden, dass dies stimmt.
06. Als nächsten werden diese Referenzpixel mit den Pixeln an denselben Positionen des aktuellen Bildes verglichen.
07. Für den Pixel-Vergleich gibt es den Parameter DeltaDiff, der als 1. Option festlegt, dass die Pixel gezählt werden, die bzgl. der absoluten Differenz der Pixelwerte unter diesem Delta liegen.
08. Als nächsten Parameter kann mit ThresholdRGBAverage zu dieser 1. Option, die Schwelle definiert werden, ab welcher Prozentzahl von der Gesamtpixelzahl der gewählten Referenzpixel die Logo-Erkennung für dieses aufgenommene aktuelle Bild dann als positiv gelten soll (Logo erkannt).
09. Die 2. Option zur Bewertung ob ein Logo erkannt wurde, besteht darin, dass eine Tabelle mit den möglichen absoluten Differenzen der Referenzpixel gebildet wird (theoretisch 0-255)
10. und die Anzahl der gleichen Pixeldifferenzen jeweils hochgezählt wird, d.h. wenn sich Referenzbild und aktuelles Bild sehr ähneln, müssten besonders viele Pixel im Bereich der Differenzen zwischen 0 und 25 liegen.
11. Der Parameter SumAnzPixDiff bestimmt zu dieser 2. Option, bis zu welcher Differenz dann die Summe der Anzahl der Pixeldifferenzen gebildet wird.
12. Mit dem Parameter ThresholdSumAnzPixDiffAverage bestimmt man für diese 2. Option wieder die Schwelle in Prozent von der Gesamtpixelzahl der gewählten Referenzpixel, ab der das Logo als erkannt gelten soll.
13. Der Parameter ThresholdLogoBorders steuert die 3. Option, nämlich wieviel Prozent der Pixel an den Logorändern eine Helligkeitsdifferenz aufweisen müssen (die Pixel werden im akt. Bild gelb dargestellt).
Somit steht für jedes Bild fest, ob ein Logo erkannt wurde (entweder 1. Option oder 2. Option oder 3. Option ist erfüllt, auch abhängig davon, ob diese Optionen aktiviert sind). Die 3. Option hat sich momentan als die beste herauskristallisiert.
Folgendermaßen werden bei diesem TAP die Logos erkannt:
Einfache Beschreibung:
In einem manuell als Referenzbild aufgenommenem Logo werden Referenzpixel ermittelt (i.d.R. der gleichfarbige und gleichhelle Bereich des Logos), für die überprüft wird, dass sie gegenüber dem aktuellen Bild eine ähnliche Helligkeit haben bzw. die Summe der Pixel mit einer nahezu ähnlichen Differenz im Pixelwert relativ hoch ist bzw. ausreichend viele Helligkeitsdifferenzen an den Logorändern auftreten.
Detaillierte Beschreibung:
01. Es wird nur der ausgewählte Bereich überprüft.
02. Nachdem ein Logo mit mittlerer und gleichmäßiger Hintergrundhelligkeit aufgenommen wurde (Referenzbild für den Vergleich),
03. wird dann anhand der einstellbaren Mindesthelligkeit (ValuePixNeighbor) wiederum der Vergleich auf bestimmte Pixel eingegrenzt,
04. die des Weiteren nur dann in Betracht gezogen werden, wenn ihr linker und rechter Nachbarpixel eine gewisse Differenz im Pixelwert (DeltaPixNeigbor) nicht überschreiten (d.h. also ähnlich hell sind).
05. Diese ausgewählten Referenzpixel werden im Detailbild in Magenta hervorgehoben und sollten dem Bereich entsprechen, in dem sich der helle Teil des Senderlogos befindet, d.h. diese beiden Werte müssen so angepasst werden, dass dies stimmt.
06. Als nächsten werden diese Referenzpixel mit den Pixeln an denselben Positionen des aktuellen Bildes verglichen.
07. Für den Pixel-Vergleich gibt es den Parameter DeltaDiff, der als 1. Option festlegt, dass die Pixel gezählt werden, die bzgl. der absoluten Differenz der Pixelwerte unter diesem Delta liegen.
08. Als nächsten Parameter kann mit ThresholdRGBAverage zu dieser 1. Option, die Schwelle definiert werden, ab welcher Prozentzahl von der Gesamtpixelzahl der gewählten Referenzpixel die Logo-Erkennung für dieses aufgenommene aktuelle Bild dann als positiv gelten soll (Logo erkannt).
09. Die 2. Option zur Bewertung ob ein Logo erkannt wurde, besteht darin, dass eine Tabelle mit den möglichen absoluten Differenzen der Referenzpixel gebildet wird (theoretisch 0-255)
10. und die Anzahl der gleichen Pixeldifferenzen jeweils hochgezählt wird, d.h. wenn sich Referenzbild und aktuelles Bild sehr ähneln, müssten besonders viele Pixel im Bereich der Differenzen zwischen 0 und 25 liegen.
11. Der Parameter SumAnzPixDiff bestimmt zu dieser 2. Option, bis zu welcher Differenz dann die Summe der Anzahl der Pixeldifferenzen gebildet wird.
12. Mit dem Parameter ThresholdSumAnzPixDiffAverage bestimmt man für diese 2. Option wieder die Schwelle in Prozent von der Gesamtpixelzahl der gewählten Referenzpixel, ab der das Logo als erkannt gelten soll.
13. Der Parameter ThresholdLogoBorders steuert die 3. Option, nämlich wieviel Prozent der Pixel an den Logorändern eine Helligkeitsdifferenz aufweisen müssen (die Pixel werden im akt. Bild gelb dargestellt).
Somit steht für jedes Bild fest, ob ein Logo erkannt wurde (entweder 1. Option oder 2. Option oder 3. Option ist erfüllt, auch abhängig davon, ob diese Optionen aktiviert sind). Die 3. Option hat sich momentan als die beste herauskristallisiert.
Wann kann ich was und wie machen?
Während Live-TV:
Hier kann der Logo-Bereich eingestellt und die Funktion der Logo-Erkennung getestet werden.
Während Wiedergabe:
Hier kann ebenfalls der Bereich eingestellt und die Erkennung getestet werden.
Wenn die Standard-TMS-Wiedergabeleiste eingeblendet ist (Play), dann kann man die Position (auch während des Scans) besser erkennen und des Weiteren springt dann Rot/F1 zum vorherigen Bookmark (plus Standard: Gelb/F3 nächster Bookmark, Grün/F2 Bookmark setzen/löschen).
Startet man dann den Scan (sofern ein Logo-Bereich aufgenommen wurde), so wird zum Anfang der Wiedergabe gesprungen und im Zeitabstand von jeweils 1 Sekunde (Parameter RefreshTick) ein Bild aufgenommen und die Analyse durchgeführt.
Nach jeder Analyse wird wieder um die durch den Parameter BlocksToJump eingestellte Zahl an Blöcken oder durch den Parameter TimeToJump eingestellte Anzahl an Sekunden weitergesprungen.
Bei der Analyse wird jeweils erkannt, ob gerade die Erkennung gewechselt ist (d.h. vorher Logo erkannt und jetzt kein Logo erkannt oder umgekehrt).
Da die Erkennung aber einer gewissen Ungenauigkeit unterliegt, kann man mit dem Parameter DetectionsForBookmark festlegen, wie oft nacheinander dieselbe Erkennung stattgefunden haben muss (und diese sich dann auch noch vom Zustand beim vorherigen Bookmark unterscheidet) bevor ein Bookmark an die Stelle gesetzt wird, wo der Erkennungsstatus gewechselt hat und derselbe Status ausreichend oft vorkam.
Um die Stelle noch genauer zu ermitteln wird dann durch kleiner werdende Sprünge rückwärts und vorwärts versucht, die korrekteste Position des Wechsels zu ermitteln.
Wenn die Parameter PlayJumpIfInactive (d.h. es wirkt auch wenn ScanForLogo nicht eingeblendet ist) oder PlayJumpIfActive (nur wenn Bereichs-Auswahl oder Logo-Erkennung aktiv sind) gesetzt und mindestens zwei Bookmarks vorhanden sind, so wird bei Erreichen eines Bookmarks geprüft, ob das kommende Segment kleiner ist als das vorherige (Annahme, dass das kommende Segment Werbung enthält), wenn ja, dann wird gleich noch ein Bookmark weitergesprungen
Während Aufnahme (nur wenn der Live-Tuner und -Sender aufgenommen wird):
Hier kann ebenfalls der Bereich eingestellt und die Erkennung getestet werden.
Wenn der Parameter RecBookmarkSet aktiv und ein Logo gespeichert ist, dann wird automatisch ein Rec-Scan gestartet und das Setzen der Bookmarks anhand der Logo-Erkennung live während der Aufnahme vorgenommen.
Während Live-TV:
Hier kann der Logo-Bereich eingestellt und die Funktion der Logo-Erkennung getestet werden.
Während Wiedergabe:
Hier kann ebenfalls der Bereich eingestellt und die Erkennung getestet werden.
Wenn die Standard-TMS-Wiedergabeleiste eingeblendet ist (Play), dann kann man die Position (auch während des Scans) besser erkennen und des Weiteren springt dann Rot/F1 zum vorherigen Bookmark (plus Standard: Gelb/F3 nächster Bookmark, Grün/F2 Bookmark setzen/löschen).
Startet man dann den Scan (sofern ein Logo-Bereich aufgenommen wurde), so wird zum Anfang der Wiedergabe gesprungen und im Zeitabstand von jeweils 1 Sekunde (Parameter RefreshTick) ein Bild aufgenommen und die Analyse durchgeführt.
Nach jeder Analyse wird wieder um die durch den Parameter BlocksToJump eingestellte Zahl an Blöcken oder durch den Parameter TimeToJump eingestellte Anzahl an Sekunden weitergesprungen.
Bei der Analyse wird jeweils erkannt, ob gerade die Erkennung gewechselt ist (d.h. vorher Logo erkannt und jetzt kein Logo erkannt oder umgekehrt).
Da die Erkennung aber einer gewissen Ungenauigkeit unterliegt, kann man mit dem Parameter DetectionsForBookmark festlegen, wie oft nacheinander dieselbe Erkennung stattgefunden haben muss (und diese sich dann auch noch vom Zustand beim vorherigen Bookmark unterscheidet) bevor ein Bookmark an die Stelle gesetzt wird, wo der Erkennungsstatus gewechselt hat und derselbe Status ausreichend oft vorkam.
Um die Stelle noch genauer zu ermitteln wird dann durch kleiner werdende Sprünge rückwärts und vorwärts versucht, die korrekteste Position des Wechsels zu ermitteln.
Wenn die Parameter PlayJumpIfInactive (d.h. es wirkt auch wenn ScanForLogo nicht eingeblendet ist) oder PlayJumpIfActive (nur wenn Bereichs-Auswahl oder Logo-Erkennung aktiv sind) gesetzt und mindestens zwei Bookmarks vorhanden sind, so wird bei Erreichen eines Bookmarks geprüft, ob das kommende Segment kleiner ist als das vorherige (Annahme, dass das kommende Segment Werbung enthält), wenn ja, dann wird gleich noch ein Bookmark weitergesprungen
Während Aufnahme (nur wenn der Live-Tuner und -Sender aufgenommen wird):
Hier kann ebenfalls der Bereich eingestellt und die Erkennung getestet werden.
Wenn der Parameter RecBookmarkSet aktiv und ein Logo gespeichert ist, dann wird automatisch ein Rec-Scan gestartet und das Setzen der Bookmarks anhand der Logo-Erkennung live während der Aufnahme vorgenommen.
Weitere Hinweise:
[list]
[*] Für allgemeine Parameter wie die Tasten gibt es die INI-Datei, während es für die senderabhängigen Werte die CHA-Dateien gibt.
[*] Die CHA-Dateien kann man mit dem TAP mitliefern bzw. anderen geben, weil sie eben nicht den Sendernamen oder die Sendernummer im Dateinamen enthalten (Sendername steht stattdessen in der ersten Zeile innerhalb der Datei). Auch statt dem Satelliten-Namen wird seine Orbitposition als Zahl verwendet.
[*] Da der CHA-Dateiname aus Satellit, Frequenz, Polarisation, Symbolrate, Service-ID und Profilnummer zusammengesetzt wird, sollte er eindeutig für den jeweiligen Sender sein.
[*] Um die gesuchte CHA-Datei zu finden ohne in alle Inhalte schauen zu müssen, kann man eine Senderliste wie z.B. http://www.satindex.de/sat/astra-all/ benutzen.
[*] Es werden mit bis zu 9 Profilen je Sender für die CHA-Dateien auch das Speichern verschiedener Positionen, anderer Parameter oder eines anderen Senderlogos unterstützt.
[*] Das Speichern des Senderlogos in der CHA-Datei wird nur vorgenommen, wenn vorher ein Referenzbild ausgewählt wurde.
[*] Die Logoerkennung funktioniert auch im Live-Bild, so dass man das TAP auch ausprobieren kann, wenn man gar keine Aufnahmen oder zumindest keine von diesem Sender hat.
[*] Wenn man keine Mindesthelligkeit einstellt (also ValuePixNeighbor = 0), dann wird zur Auswahl der Referenzpixel auf > Durchschnittshelligkeit geprüft, was allerdings bei meinen Tests noch nicht so gut klappte.
[*] Beim Spulen, bei Zeitlupe und im Standbild kann kein Logo aufgenommen werden (Firmware-FrameBuffer liefert nichts).
[*] Das Setzen der Bookmarks findet also nur bei normaler Wiedergabegeschwindigkeit und gestartem Scan statt.
[*] Während der Wiedergabe werden die zu setzenden Bookmarks zunächst nur gemerkt und erst dann in die RecHeader-Datei (.inf) geschrieben, wenn man die Wiedergabe stoppt, sie von selbst endet oder wenn man eine andere Datei wiedergibt.
[*] Veränderungen an den Sendereinstellungen werden bei jedem Senderwechsel (auch durch Wiedergabe) und beim TAP-Ende gespeichert.
[*] Veränderungen an den normalen INI-Einstellungen werden nur beim Verlassen des Menüs gespeichert.
[*] Des Weiteren kann man das Speichern von Veränderungen erzwingen, indem man ins Menü rein und wieder raus geht.[/list]
[list]
[*] Für allgemeine Parameter wie die Tasten gibt es die INI-Datei, während es für die senderabhängigen Werte die CHA-Dateien gibt.
[*] Die CHA-Dateien kann man mit dem TAP mitliefern bzw. anderen geben, weil sie eben nicht den Sendernamen oder die Sendernummer im Dateinamen enthalten (Sendername steht stattdessen in der ersten Zeile innerhalb der Datei). Auch statt dem Satelliten-Namen wird seine Orbitposition als Zahl verwendet.
[*] Da der CHA-Dateiname aus Satellit, Frequenz, Polarisation, Symbolrate, Service-ID und Profilnummer zusammengesetzt wird, sollte er eindeutig für den jeweiligen Sender sein.
[*] Um die gesuchte CHA-Datei zu finden ohne in alle Inhalte schauen zu müssen, kann man eine Senderliste wie z.B. http://www.satindex.de/sat/astra-all/ benutzen.
[*] Es werden mit bis zu 9 Profilen je Sender für die CHA-Dateien auch das Speichern verschiedener Positionen, anderer Parameter oder eines anderen Senderlogos unterstützt.
[*] Das Speichern des Senderlogos in der CHA-Datei wird nur vorgenommen, wenn vorher ein Referenzbild ausgewählt wurde.
[*] Die Logoerkennung funktioniert auch im Live-Bild, so dass man das TAP auch ausprobieren kann, wenn man gar keine Aufnahmen oder zumindest keine von diesem Sender hat.
[*] Wenn man keine Mindesthelligkeit einstellt (also ValuePixNeighbor = 0), dann wird zur Auswahl der Referenzpixel auf > Durchschnittshelligkeit geprüft, was allerdings bei meinen Tests noch nicht so gut klappte.
[*] Beim Spulen, bei Zeitlupe und im Standbild kann kein Logo aufgenommen werden (Firmware-FrameBuffer liefert nichts).
[*] Das Setzen der Bookmarks findet also nur bei normaler Wiedergabegeschwindigkeit und gestartem Scan statt.
[*] Während der Wiedergabe werden die zu setzenden Bookmarks zunächst nur gemerkt und erst dann in die RecHeader-Datei (.inf) geschrieben, wenn man die Wiedergabe stoppt, sie von selbst endet oder wenn man eine andere Datei wiedergibt.
[*] Veränderungen an den Sendereinstellungen werden bei jedem Senderwechsel (auch durch Wiedergabe) und beim TAP-Ende gespeichert.
[*] Veränderungen an den normalen INI-Einstellungen werden nur beim Verlassen des Menüs gespeichert.
[*] Des Weiteren kann man das Speichern von Veränderungen erzwingen, indem man ins Menü rein und wieder raus geht.[/list]
Beispiel-Vorgehen - Schritt für Schritt:
[list]
[*] TAP starten
[*] mit DisplayKey (standardmäßig Subtitle) einblenden
[*] jetzt zwei Varianten: entweder ist noch keine Parameter-Datei oder nur eine ohne Logo vorhanden (Variante A) oder es existiert bereits eine Parameter-Datei mit Logo (Variante B)
[*] Variante A:
[*] es erscheint ein weißes Rechteck (standardmäßig links oben)
[*] nun kann man es mit Links/Rechts/Hoch/Runter in Richtung des Senderlogos bewegen (gedrückt halten springt schneller); so positionieren, dass die linke obere Ecke auch links oben am Senderlogo anliegt
[*] jetzt mit SwitchKey (standardmäßig Recall) von Verschieben auf Verkleinern/Vergrößern umstellen (das Rechteck wird türkis)
[*] dann mit Links/Rechts die Breite und mit Hoch/Runter die Höhe des Rechtecks so einstellen, dass das Senderlogo umfasst wird (gedrückt halten verkleiner/vergrößert schneller)
[*] danach mit SnapKey (standardmäßig OK) das Senderlogo in einem Moment aufnehmen (unser Referenzlogo), in dem ein gleichmäßiger mitteldunkler Hintergrund vorhanden ist
[*] hat dies nicht gut geklappt (erkennt man gleich etwas weiter unten), dann nochmal mit SnapKey ein neues Referenz-Logo aufnehmen
[*] ab hier wäre es auch Variante B:
[*] jetzt sollte standardmäßig gleich das Detailbild erscheinen, falls nicht dann mit dem DisplayKey (Subtitle) einblenden
[*] außerdem ist das ursprüngliche Rechteck jetzt bereits grün oder rot (d.h. die Logo-Erkennung läuft schon)
[*] wenn man später mit Profilen arbeitet, dann sollte man hier prüfen, ob das passende gewählt ist bzw. ein anderes auswählen
[*] nun mit Hoch/Runter den "Pixelwert vor Prüfung benachbarter Pixel" (ValuePixNeighbor) so einstellen, dass der hellste Bereich des Logos lila eingefärbt wird; nicht zum Logo gehörende Bereiche sollten auch nicht eingefärbt sein; wenn es nicht ganz so hinzubekommen ist, dann ein neues Referenz-Logo aufnehmen
[*] standardmäßig ist die dritte Erkennungs-Methode aktiv ("Schwelle nach Logorändern bei"), wenn hier jetzt die rechte Prozentzahl bei einem vorhanden Logo grün und bei nicht vorhandenem Logo rot wird, dann haben wir schonmal gute Voraussetzungen
[*] die gelb markierten Parameter (außer ValuePixNeighbor) und weitere hier nicht angezeigte können nur im Menü geändert werden; eine Erklärung zu diesen findet man in der detaillierten Beschreibung der Logo-Erkennung
[*] man kann nun das Detailbild weiter eingeblendet lassen oder kann es mit dem DisplayKey auch ausblenden, wobei dann immernoch unser ursprüngliches Rechteck die Logo-Erkennung ausführt (grün/rot)
[*] jetzt erstmal durch einen Senderwechsel oder mit Menü und Exit für das Sichern der Einstellungen zu diesem Sender und diesem Profil sorgen
[*] nun gibt es wieder zwei Möglichkeiten: Live-TV-Aufnahme durchführen oder eine bestehende Aufnahme im Wiedergabemodus scannen; beides sorgt dafür, dass in die Aufnahme Bookmarks an den Stellen gesetzt werden, wo das Logo ein- oder ausgeblendet wird
[*] Live-TV-Aufnahme (wenn Parameter RecBookmarkSet aktiv):
[*] wie der Name schon sagt ist es für ScanForLogo erforderlich, dass der aktuelle Tuner und Sender aufgenommen wird (da es mit Screenshots arbeitet, kann es keine Aufnahme auf einem anderen Hintergrund-Rec-Slot verarbeiten)
[*] einfach eine Sofortaufnahme starten oder einen Timer auf dem Live-Tuner/-Sender planen
[*] ScanForLogo muß im Modus der Logo-Erkennung sein, jedoch darf das Detailbild ausgeblendet sein
[*] es setzt jeweils einen Bookmark an die Stelle wo das Logo ein- oder ausgeblendet wurde (das speichern der Bookmarks erfolgt erst bei Ende der Aufnahme)
[*] Wiedergabe-Scan:
[*] hier kann man eine vorhandene Aufnahme wiedergeben und wiederholt dann die oberen Schritte falls es sich um einen anderen Sender handeln sollte
[*] wenn die Erkennung soweit vorbereitet ist (später muss man hier kontrollieren, dass man das richtige Profil gewählt hat), drückt man den ScanKey (standardmäßig SAT), ggf. wird jetzt noch gefragt, ob evtl. bereits vorhandene Bookmarks gelöscht werden sollen (eigentlich schon)
[*] nun fängt ScanForLogo an zum Anfang der Aufnahme zurückzuspringen und in einem voreingestellten Abstand zu springen
[*] es empfiehlt sich, mit der Play-Taste die Standard-TMS-Wiedergabeleiste einzublendet, damit man auch optisch erkennt, wo gerade gescannt wird
[*] aber im Detailbild erscheint auch ein neuer Bereich, in dem Angaben zu Blöcken und Zeiten stehen, in der Spalte Scanzeit z.B. oben die bereits abgelaufene Zeit und unten die prognostizierte Restzeit
[*] wenn eine Logo-Aus-/Einblendung erkannt wird, dann geht es in einen Modus für einen feinen Scan und sucht noch genauer nach dem exakten Wechsel
[*] sobald dieser gefunden ist, wird ein Bookmark gesetzt und dies im oberen Bereich unter "BM Block" auch angezeigt
[*] man kann den Scan bei Bedarf zur Parameteroptimierung nochmal mit dem ScanKey (SAT) stoppen, dann Parameter ändern und wieder starten
[*] die gefundenen Stellen werden nur als Bookmarks gespeichert, wenn man die Wiedergabe bis zum Ende durchscannen läßt (oder sie manuell mit der Stop-Taste beendet, aber dann nur die bis dahin gefundenen Bookmarks)
[*] so jetzt hat man über eine dieser beiden Möglichkeiten Bookmarks in die Datei gesetzt
[*] und wieder gibt es zwei Möglichkeiten: eine wäre mit MovieCutter von FireBird die Werbung anhand der Bookmarks rauszuschneiden, die andere wäre, dass man die Wiedergabe direkt anschaut und ScanForLogo beim Überspringen der Werbung unterstützt
[*] MovieCutter:
[*] siehe FireBirds Thread
[*] Werbung überspringen mit ScanForLogo:
[*] wenn die Parameter PlayJumpIfInactive (wenn ausgeblendet)/PlayJumpIfActive (wenn eingeblendet) aktiv sind, kann die Werbung (im Normalfall die kürzeren Segmente) übersprungen werden
[*] und zwar startet man die Wiedergabe der mit Bookmarks versehenen Datei
[*] ScanForLogo nimmt hierbei sogar seine Arbeit wahr, wenn es mit kurzem Drücken des ExitKeys (standardmäßig Sleep) ausgeblendet wurde (PlayJumpIfInactive); aber genauso tut es das auch, wenn es eingeblendet ist (PlayJumpIfActive)
[*] dabei prüft ScanForLogo regelmäßig, ob ein Bookmark erreicht wird und wenn das nachfolgende Segment kürzer ist als das aktuelle, dann springt es gleich zum übernächsten Bookmark
[*] so sollte automatisch die Werbung übersprungen werden; die Genauigkeit hängt von vielen Faktoren während des Setzens der Bookmarks und deren korrekten Positionierung ab
[*] das wars schon mit der Schritt für Schritt Anleitung; die anderen Möglichkeiten wird man schon mit der Zeit entdecken[/list]
[list]
[*] TAP starten
[*] mit DisplayKey (standardmäßig Subtitle) einblenden
[*] jetzt zwei Varianten: entweder ist noch keine Parameter-Datei oder nur eine ohne Logo vorhanden (Variante A) oder es existiert bereits eine Parameter-Datei mit Logo (Variante B)
[*] Variante A:
[*] es erscheint ein weißes Rechteck (standardmäßig links oben)
[*] nun kann man es mit Links/Rechts/Hoch/Runter in Richtung des Senderlogos bewegen (gedrückt halten springt schneller); so positionieren, dass die linke obere Ecke auch links oben am Senderlogo anliegt
[*] jetzt mit SwitchKey (standardmäßig Recall) von Verschieben auf Verkleinern/Vergrößern umstellen (das Rechteck wird türkis)
[*] dann mit Links/Rechts die Breite und mit Hoch/Runter die Höhe des Rechtecks so einstellen, dass das Senderlogo umfasst wird (gedrückt halten verkleiner/vergrößert schneller)
[*] danach mit SnapKey (standardmäßig OK) das Senderlogo in einem Moment aufnehmen (unser Referenzlogo), in dem ein gleichmäßiger mitteldunkler Hintergrund vorhanden ist
[*] hat dies nicht gut geklappt (erkennt man gleich etwas weiter unten), dann nochmal mit SnapKey ein neues Referenz-Logo aufnehmen
[*] ab hier wäre es auch Variante B:
[*] jetzt sollte standardmäßig gleich das Detailbild erscheinen, falls nicht dann mit dem DisplayKey (Subtitle) einblenden
[*] außerdem ist das ursprüngliche Rechteck jetzt bereits grün oder rot (d.h. die Logo-Erkennung läuft schon)
[*] wenn man später mit Profilen arbeitet, dann sollte man hier prüfen, ob das passende gewählt ist bzw. ein anderes auswählen
[*] nun mit Hoch/Runter den "Pixelwert vor Prüfung benachbarter Pixel" (ValuePixNeighbor) so einstellen, dass der hellste Bereich des Logos lila eingefärbt wird; nicht zum Logo gehörende Bereiche sollten auch nicht eingefärbt sein; wenn es nicht ganz so hinzubekommen ist, dann ein neues Referenz-Logo aufnehmen
[*] standardmäßig ist die dritte Erkennungs-Methode aktiv ("Schwelle nach Logorändern bei"), wenn hier jetzt die rechte Prozentzahl bei einem vorhanden Logo grün und bei nicht vorhandenem Logo rot wird, dann haben wir schonmal gute Voraussetzungen
[*] die gelb markierten Parameter (außer ValuePixNeighbor) und weitere hier nicht angezeigte können nur im Menü geändert werden; eine Erklärung zu diesen findet man in der detaillierten Beschreibung der Logo-Erkennung
[*] man kann nun das Detailbild weiter eingeblendet lassen oder kann es mit dem DisplayKey auch ausblenden, wobei dann immernoch unser ursprüngliches Rechteck die Logo-Erkennung ausführt (grün/rot)
[*] jetzt erstmal durch einen Senderwechsel oder mit Menü und Exit für das Sichern der Einstellungen zu diesem Sender und diesem Profil sorgen
[*] nun gibt es wieder zwei Möglichkeiten: Live-TV-Aufnahme durchführen oder eine bestehende Aufnahme im Wiedergabemodus scannen; beides sorgt dafür, dass in die Aufnahme Bookmarks an den Stellen gesetzt werden, wo das Logo ein- oder ausgeblendet wird
[*] Live-TV-Aufnahme (wenn Parameter RecBookmarkSet aktiv):
[*] wie der Name schon sagt ist es für ScanForLogo erforderlich, dass der aktuelle Tuner und Sender aufgenommen wird (da es mit Screenshots arbeitet, kann es keine Aufnahme auf einem anderen Hintergrund-Rec-Slot verarbeiten)
[*] einfach eine Sofortaufnahme starten oder einen Timer auf dem Live-Tuner/-Sender planen
[*] ScanForLogo muß im Modus der Logo-Erkennung sein, jedoch darf das Detailbild ausgeblendet sein
[*] es setzt jeweils einen Bookmark an die Stelle wo das Logo ein- oder ausgeblendet wurde (das speichern der Bookmarks erfolgt erst bei Ende der Aufnahme)
[*] Wiedergabe-Scan:
[*] hier kann man eine vorhandene Aufnahme wiedergeben und wiederholt dann die oberen Schritte falls es sich um einen anderen Sender handeln sollte
[*] wenn die Erkennung soweit vorbereitet ist (später muss man hier kontrollieren, dass man das richtige Profil gewählt hat), drückt man den ScanKey (standardmäßig SAT), ggf. wird jetzt noch gefragt, ob evtl. bereits vorhandene Bookmarks gelöscht werden sollen (eigentlich schon)
[*] nun fängt ScanForLogo an zum Anfang der Aufnahme zurückzuspringen und in einem voreingestellten Abstand zu springen
[*] es empfiehlt sich, mit der Play-Taste die Standard-TMS-Wiedergabeleiste einzublendet, damit man auch optisch erkennt, wo gerade gescannt wird
[*] aber im Detailbild erscheint auch ein neuer Bereich, in dem Angaben zu Blöcken und Zeiten stehen, in der Spalte Scanzeit z.B. oben die bereits abgelaufene Zeit und unten die prognostizierte Restzeit
[*] wenn eine Logo-Aus-/Einblendung erkannt wird, dann geht es in einen Modus für einen feinen Scan und sucht noch genauer nach dem exakten Wechsel
[*] sobald dieser gefunden ist, wird ein Bookmark gesetzt und dies im oberen Bereich unter "BM Block" auch angezeigt
[*] man kann den Scan bei Bedarf zur Parameteroptimierung nochmal mit dem ScanKey (SAT) stoppen, dann Parameter ändern und wieder starten
[*] die gefundenen Stellen werden nur als Bookmarks gespeichert, wenn man die Wiedergabe bis zum Ende durchscannen läßt (oder sie manuell mit der Stop-Taste beendet, aber dann nur die bis dahin gefundenen Bookmarks)
[*] so jetzt hat man über eine dieser beiden Möglichkeiten Bookmarks in die Datei gesetzt
[*] und wieder gibt es zwei Möglichkeiten: eine wäre mit MovieCutter von FireBird die Werbung anhand der Bookmarks rauszuschneiden, die andere wäre, dass man die Wiedergabe direkt anschaut und ScanForLogo beim Überspringen der Werbung unterstützt
[*] MovieCutter:
[*] siehe FireBirds Thread
[*] Werbung überspringen mit ScanForLogo:
[*] wenn die Parameter PlayJumpIfInactive (wenn ausgeblendet)/PlayJumpIfActive (wenn eingeblendet) aktiv sind, kann die Werbung (im Normalfall die kürzeren Segmente) übersprungen werden
[*] und zwar startet man die Wiedergabe der mit Bookmarks versehenen Datei
[*] ScanForLogo nimmt hierbei sogar seine Arbeit wahr, wenn es mit kurzem Drücken des ExitKeys (standardmäßig Sleep) ausgeblendet wurde (PlayJumpIfInactive); aber genauso tut es das auch, wenn es eingeblendet ist (PlayJumpIfActive)
[*] dabei prüft ScanForLogo regelmäßig, ob ein Bookmark erreicht wird und wenn das nachfolgende Segment kürzer ist als das aktuelle, dann springt es gleich zum übernächsten Bookmark
[*] so sollte automatisch die Werbung übersprungen werden; die Genauigkeit hängt von vielen Faktoren während des Setzens der Bookmarks und deren korrekten Positionierung ab
[*] das wars schon mit der Schritt für Schritt Anleitung; die anderen Möglichkeiten wird man schon mit der Zeit entdecken[/list]
Farbenbedeutung:
Farbenbedeutung des Logo-Bereiches:
weiß - Auswahl des Logo-Bereiches und zwar Verschieben
türkis - Auswahl des Logo-Bereiches und zwar Verkleinern/Vergrößern
gelb - versuchte Aufnahme des Logos, jedoch nicht erfolgreich
lila - Aufnahme des Logos erfolgreich bzw. das aus der CHA-Datei geladene Logo
grün - im aktuellen Bereich wurde das aufgenommene Logo erkannt
rot - im aktuellen Bereich wurde das aufgenommene Logo nicht erkannt
Farbenbedeutung im Detailbild:
weiß - errechneter Parameter
gelb - definierter Parameter
grau - inaktiver Parameter
Farbenbedeutung des Logo-Bereiches:
weiß - Auswahl des Logo-Bereiches und zwar Verschieben
türkis - Auswahl des Logo-Bereiches und zwar Verkleinern/Vergrößern
gelb - versuchte Aufnahme des Logos, jedoch nicht erfolgreich
lila - Aufnahme des Logos erfolgreich bzw. das aus der CHA-Datei geladene Logo
grün - im aktuellen Bereich wurde das aufgenommene Logo erkannt
rot - im aktuellen Bereich wurde das aufgenommene Logo nicht erkannt
Farbenbedeutung im Detailbild:
weiß - errechneter Parameter
gelb - definierter Parameter
grau - inaktiver Parameter
Tastenbelegung:
- wenn ausgeblendet, dann:
Subtitle - Einblenden für Auswahl des Logo-Bereiches (Taste mit DisplayKey konfigurierbar)
Sleep gedrückt halten - TAP beenden (Taste mit ExitKey konfigurierbar)
- wenn eingeblendet für Auswahl des Logo-Bereiches, dann:
Subtitle - Ausblenden (Taste mit DisplayKey konfigurierbar)
Recall - Wechsel zwischen Verkleinern/Vergrößern und Verschieben (Taste mit SwitchKey konfigurierbar)
Links/Rechts - Verkleinern/Vergrößern oder Verschieben in horizontaler Richtung
Hoch/Runter - Verkleinern/Vergrößern oder Verschieben in vertikaler Richtung
Ok - Aufnahme des Logos (Taste mit SnapKey konfigurierbar)
Menu - Menü-Aufruf (Taste mit MenuKey konfigurierbar)
Sleep - Ausblenden (Taste mit ExitKey konfigurierbar)
Sleep gedrückt halten - TAP beenden (Taste mit ExitKey konfigurierbar)
- wenn eingeblendet während der Logo-Erkennung, dann:
Subtitle - Wechsel zwischen Detailanzeige oder keine Detailanzeige (Taste mit DisplayKey konfigurierbar)
Recall - zurück zur Auswahl des Logo-Bereiches (Taste mit SwitchKey konfigurierbar)
Hoch/Runter - Verändern des Schwellwertes für die Mindesthelligkeit der benachbarten Pixel
Links/Rechts - Profil wechseln (dabei wird das bisherige Profil aber NICHT gespeichert)
M - als neues Profil speichern (Taste mit ProfileKey konfigurierbar)
Ok - Aufnahme des Logos (Taste mit SnapKey konfigurierbar)
SAT - während der Wiedergabe Start/Stop eines automatischen Scans mit Bookmark-Setzen (Taste mit ScanKey konfigurierbar)
Menu - Menü-Aufruf (Taste mit MenuKey konfigurierbar)
Sleep - Ausblenden (Taste mit ExitKey konfigurierbar)
Sleep gedrückt halten - TAP beenden (Taste mit ExitKey konfigurierbar)
Im Menü:
Links/Rechts - Ändern der Werte (gedrückt halten, um in größeren Sprüngen zu ändern, siehe ClickAndHoldJump)
Prev/Next - Profil wechseln (dabei wird das bisherige Profil aber NICHT gespeichert)
M - als neues Profil speichern (Taste mit ProfileKey konfigurierbar)
Exit - Einstellungen speichern und Menü verlassen
Sleep - TAP beenden (Taste mit ExitKey konfigurierbar)
Im TMSCommander:
Menu - TAP-Menü
Rot - TAP beenden
UserEvent - wenn eingeblendet während der Logo-Erkennung, dann erneuter Aufbau des Bildes
Tastennummern-Liste:
0 - NoKey
1 - Mute
2 - 0
3 - 1
4 - 2
5 - 3
6 - 4
7 - 5
8 - 6
9 - 7
10 - 8
11 - 9
12 - Recall
13 - Info
14 - Left
15 - Right
16 - Up
17 - Down
18 - V+
19 - V-
20 - Ch+
21 - Ch-
22 - OK
23 - Menu
24 - Guide
25 - PlayList
26 - Exit
27 - Red
28 - Green
29 - Yellow
30 - Blue
31 - White
32 - Subtitle
33 - Teletext
34 - AudioTrk
35 - VF
36 - AR
37 - Sleep
38 - TvRadio
39 - Record
40 - Stop
41 - SAT
42 - M
43 - Rewind
44 - Pause
45 - Play
46 - Forward
47 - Prev
48 - Slow
49 - Edit
50 - Next
- wenn ausgeblendet, dann:
Subtitle - Einblenden für Auswahl des Logo-Bereiches (Taste mit DisplayKey konfigurierbar)
Sleep gedrückt halten - TAP beenden (Taste mit ExitKey konfigurierbar)
- wenn eingeblendet für Auswahl des Logo-Bereiches, dann:
Subtitle - Ausblenden (Taste mit DisplayKey konfigurierbar)
Recall - Wechsel zwischen Verkleinern/Vergrößern und Verschieben (Taste mit SwitchKey konfigurierbar)
Links/Rechts - Verkleinern/Vergrößern oder Verschieben in horizontaler Richtung
Hoch/Runter - Verkleinern/Vergrößern oder Verschieben in vertikaler Richtung
Ok - Aufnahme des Logos (Taste mit SnapKey konfigurierbar)
Menu - Menü-Aufruf (Taste mit MenuKey konfigurierbar)
Sleep - Ausblenden (Taste mit ExitKey konfigurierbar)
Sleep gedrückt halten - TAP beenden (Taste mit ExitKey konfigurierbar)
- wenn eingeblendet während der Logo-Erkennung, dann:
Subtitle - Wechsel zwischen Detailanzeige oder keine Detailanzeige (Taste mit DisplayKey konfigurierbar)
Recall - zurück zur Auswahl des Logo-Bereiches (Taste mit SwitchKey konfigurierbar)
Hoch/Runter - Verändern des Schwellwertes für die Mindesthelligkeit der benachbarten Pixel
Links/Rechts - Profil wechseln (dabei wird das bisherige Profil aber NICHT gespeichert)
M - als neues Profil speichern (Taste mit ProfileKey konfigurierbar)
Ok - Aufnahme des Logos (Taste mit SnapKey konfigurierbar)
SAT - während der Wiedergabe Start/Stop eines automatischen Scans mit Bookmark-Setzen (Taste mit ScanKey konfigurierbar)
Menu - Menü-Aufruf (Taste mit MenuKey konfigurierbar)
Sleep - Ausblenden (Taste mit ExitKey konfigurierbar)
Sleep gedrückt halten - TAP beenden (Taste mit ExitKey konfigurierbar)
Im Menü:
Links/Rechts - Ändern der Werte (gedrückt halten, um in größeren Sprüngen zu ändern, siehe ClickAndHoldJump)
Prev/Next - Profil wechseln (dabei wird das bisherige Profil aber NICHT gespeichert)
M - als neues Profil speichern (Taste mit ProfileKey konfigurierbar)
Exit - Einstellungen speichern und Menü verlassen
Sleep - TAP beenden (Taste mit ExitKey konfigurierbar)
Im TMSCommander:
Menu - TAP-Menü
Rot - TAP beenden
UserEvent - wenn eingeblendet während der Logo-Erkennung, dann erneuter Aufbau des Bildes
Tastennummern-Liste:
0 - NoKey
1 - Mute
2 - 0
3 - 1
4 - 2
5 - 3
6 - 4
7 - 5
8 - 6
9 - 7
10 - 8
11 - 9
12 - Recall
13 - Info
14 - Left
15 - Right
16 - Up
17 - Down
18 - V+
19 - V-
20 - Ch+
21 - Ch-
22 - OK
23 - Menu
24 - Guide
25 - PlayList
26 - Exit
27 - Red
28 - Green
29 - Yellow
30 - Blue
31 - White
32 - Subtitle
33 - Teletext
34 - AudioTrk
35 - VF
36 - AR
37 - Sleep
38 - TvRadio
39 - Record
40 - Stop
41 - SAT
42 - M
43 - Rewind
44 - Pause
45 - Play
46 - Forward
47 - Prev
48 - Slow
49 - Edit
50 - Next
Download über TAPtoDate (Betas einschalten) oder auf meiner Homepage.
Die mitgelieferten CHA-Dateien sind für RTL, RTL2, SAT.1, ProSieben, kabel eins, VOX, n-tv, N24, Das Erste HD, ZDF HD (jeweils die Sender-Variante aus Deutschland).
Der Wettstreit um die besten CHA-Dateien ist eröffnet. Gern könnt Ihr Eure Dateien hier anfügen, dann würde ich sie jeweils mit der nächsten Version ausliefern. Falls es zu viel wird, können wir auch einen separaten Thread und ein separates TTD-Paket bauen.