Markad

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Erste Version)
 
(Status)
 
(34 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Aktuelle Version==
 
[http://projects.vdr-developer.org/attachments/download/310/vdr-markad-0.0.7.tgz Version 0.0.7]
 
 
 
==Beschreibung==
 
==Beschreibung==
 
'''Autor:''' Jochen Dolze
 
'''Autor:''' Jochen Dolze
  
Ein Programm zum automatischen Setzen von Schnittmarken für Werbeeinblendungen in VDR-Aufnahmen.
+
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.
 
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.
 +
 +
Markad ist jeweils als eigenständiges Programm oder als Plugin verfügbar.
 +
 +
===Status===
 +
2023-09-18: Wird aktiv gepflegt, aktuelles Wiki: https: //github.com/kfb77/vdr-plugin-markad/wiki
 +
 +
==Funktionsweise==
 +
 +
===Merkmale für Marken===
 +
 +
====SD-Material====
 +
 +
* Änderung des Bildseitenverhältnisses von 4:3 auf 16:9 (und umgekehrt)
 +
* Änderung der Anzahl verwendeter Tonkanäle bei DolbyDigital Tonspuren (Werbung derzeit immer 2-Kanal)
 +
* Schwarze, horizontale Balken ("letterbox") bei Sendungen im Format 4:3 und 16:9
 +
* Änderung des Logos bei Sendungen im Format 16:9
 +
 +
  Beispiel für die Änderung des Bildseitenverhältnisses von 4:3 auf 16:9,
 +
  das linke Frame ist in 4:3, die rechten beiden in 16:9.
 +
  Die Auflösung des Videostreams betrug nur 544x576i25, deshalb ist die
 +
  Änderung mit bloßem Auge nicht wirklich ersichtlich
 +
  [[Datei:Markad_cc43_169.jpg]]
 +
  Die Werbeerkennung erfolgt hier aufgrund der Änderung des Bildseitenverhältnisses
 +
 +
  Beispiel für eine Sendung in 4:3 Letterbox (linker Frame im Bildseitenverhältnis 4:3 mit
 +
  großen horizontalen Balken), auf die eine Sendung im Kinoformat folgt (1,85:1 oder 2,35:1
 +
  - die rechten beiden Frames im Bildseitenverhältnis 16:9 mit dünneren horizontalen Balken).
 +
  Die Auflösung des Videostreams betrug 720x576i
 +
  [[Datei:Markad_pro7letterbox.jpg]]
 +
  Die Werberkennung (bzw. Erkennung des Filmendes) erfolgt beim Film links aufgrund der
 +
  Änderung des Bildseitenverhältnisses, beim Film rechts aufgrund der schwarzen horizontalen
 +
  Balken (oder wenn vorhanden anhand einer DolbyDigital5.1 Tonspur)
 +
 +
====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
 +
  [[Datei:Markad_voxhd43.jpg]]
 +
  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<br>
 +
  [[Datei:Logoerkennung.png]]
 +
 +
Wenn das Bild im Kontrast zum Logo zu hell ist, liefert die Kantendetektierung schlechte
 +
Ergebnisse. Dann kann es vorkommen,<br>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==
 
==Hardwareanforderungen==
Zeile 19: Zeile 90:
  
 
==Konfiguration==
 
==Konfiguration==
 
==Probleme==
 
  
 
==Optionen==
 
==Optionen==
Zeile 28: Zeile 97:
 
!Lang
 
!Lang
 
!Beschreibung
 
!Beschreibung
|-
 
| '''-v'''
 
| '''--verbose'''
 
| erhöht den Log-Level, kann mehrfach angegeben werden
 
 
|-
 
|-
 
| '''-b'''
 
| '''-b'''
 
| '''--background'''
 
| '''--background'''
 
| lässt markad als Hintergrundprozess laufen
 
| 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'''
 
| '''-p'''
Zeile 41: Zeile 120:
 
| Priorität wenn markad als Hintergrundprozess läuft [20...-20] default: 20
 
| Priorität wenn markad als Hintergrundprozess läuft [20...-20] default: 20
 
|-
 
|-
| '''-O'''
+
| '''-r'''
| '''--OSD'''
+
| '''--ioprio=<class>[,<level>]'''
| sendet eine OSD-Message an VDR für Start und Ende
+
| 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'''
 
| '''-B'''
 
| '''--backupmarks'''
 
| '''--backupmarks'''
 
| sichert eine vorhandene marks.vdr nach marks0.vdr
 
| 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<br>
 +
<width>  (50-480), default 192 (SD) 288 (HD)<br>
 +
<height> (20-250), default 100 (SD) 180 (HD)<br>
 +
|-
 +
| '''-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'''
 
| '''-V'''
 
| '''--version'''
 
| '''--version'''
 
| zeigt die Versionsnummer und beendet markad dann
 
| zeigt die Versionsnummer und beendet markad dann
 +
|-
 +
|
 +
| '''--loglevel=<level>'''
 +
| Setzt das loglevel auf einen bestimmten Wert<br>
 +
1=error 2=info 3=debug 4=trace
 
|-
 
|-
 
|
 
|
 
| '''--markfile=<markfilename>'''
 
| '''--markfile=<markfilename>'''
 
| setzt einen anderen <markfilename>, nur für Testzwecke
 
| setzt einen anderen <markfilename>, nur für Testzwecke
 +
|-
 +
|
 +
| '''--nopid'''
 +
| erstellt keine markad.pid Datei im Aufnahmeverzeichnis
 
|-
 
|-
 
|
 
|
Zeile 62: Zeile 182:
 
gestartet. Ist --online=2 angegeben, passiert dies bei jeder Aufnahme, sonst nur bei live-Aufnahmen.
 
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.
 
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
 +
|-
 
|}
 
|}
  
Zeile 75: Zeile 212:
 
===Werbung überspringen===
 
===Werbung überspringen===
 
Für das überspringen der von markad erzeugten Schnittmarken, bei der Wiedergabe von Aufnahmen, empfiehlt sich der [[jumpplay-patch]].
 
Für das überspringen der von markad erzeugten Schnittmarken, bei der Wiedergabe von Aufnahmen, empfiehlt sich der [[jumpplay-patch]].
 +
 +
==Entwickler==
 +
 +
VERALTET! git clone git://projects.vdr-developer.org/vdr-plugin-markad.git
 +
 +
Aktuell: https: //github.com/kfb77/vdr-plugin-markad
 +
 +
==Aktuelle Version==
 +
[https: //github.com/kfb77/vdr-plugin-markad master]
  
 
==Links==
 
==Links==
# [http://projects.vdr-developer.org/projects/plg-markad Homepage des Plugins]
+
# [http://projects.vdr-developer.org/projects/plg-markad Homepage des Programms]
# [http://projects.vdr-developer.org/projects/plg-markad/files Download Archiv des Plugins]
+
# [http://projects.vdr-developer.org/git/?p=vdr-plugin-markad.git;a=summary Git-Repository des Plugins]
+
  
 
[[Kategorie:Software]]
 
[[Kategorie:Software]]
 +
[[Kategorie:Timer- und Aufnahmeplugins]]
 
{{i18n|markad}}
 
{{i18n|markad}}

Aktuelle Version vom 18. September 2023, 08:59 Uhr

Inhaltsverzeichnis

[Bearbeiten] 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.

Markad ist jeweils als eigenständiges Programm oder als Plugin verfügbar.

[Bearbeiten] Status

2023-09-18: Wird aktiv gepflegt, aktuelles Wiki: https: //github.com/kfb77/vdr-plugin-markad/wiki

[Bearbeiten] Funktionsweise

[Bearbeiten] Merkmale für Marken

[Bearbeiten] SD-Material

  • Änderung des Bildseitenverhältnisses von 4:3 auf 16:9 (und umgekehrt)
  • Änderung der Anzahl verwendeter Tonkanäle bei DolbyDigital Tonspuren (Werbung derzeit immer 2-Kanal)
  • Schwarze, horizontale Balken ("letterbox") bei Sendungen im Format 4:3 und 16:9
  • Änderung des Logos bei Sendungen im Format 16:9
 Beispiel für die Änderung des Bildseitenverhältnisses von 4:3 auf 16:9,
 das linke Frame ist in 4:3, die rechten beiden in 16:9. 
 Die Auflösung des Videostreams betrug nur 544x576i25, deshalb ist die
 Änderung mit bloßem Auge nicht wirklich ersichtlich
 Markad cc43 169.jpg
 Die Werbeerkennung erfolgt hier aufgrund der Änderung des Bildseitenverhältnisses
 Beispiel für eine Sendung in 4:3 Letterbox (linker Frame im Bildseitenverhältnis 4:3 mit
 großen horizontalen Balken), auf die eine Sendung im Kinoformat folgt (1,85:1 oder 2,35:1
 - die rechten beiden Frames im Bildseitenverhältnis 16:9 mit dünneren horizontalen Balken).
 Die Auflösung des Videostreams betrug 720x576i
 Markad pro7letterbox.jpg
 Die Werberkennung (bzw. Erkennung des Filmendes) erfolgt beim Film links aufgrund der
 Änderung des Bildseitenverhältnisses, beim Film rechts aufgrund der schwarzen horizontalen
 Balken (oder wenn vorhanden anhand einer DolbyDigital5.1 Tonspur)

[Bearbeiten] 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
 Markad voxhd43.jpg
 Die Werbeerkennung erfolgt hier aufgrund der vertikalen schwarzen Balken

[Bearbeiten] 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
Logoerkennung.png

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.

[Bearbeiten] 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

[Bearbeiten] Hardwareanforderungen

Keine

[Bearbeiten] Softwareanforderungen

  • VDR >= 1.6
  • libavcodec >= 51 (für HDTV >= 52)

[Bearbeiten] Installation

[Bearbeiten] Konfiguration

[Bearbeiten] 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
<width> (50-480), default 192 (SD) 288 (HD)
<height> (20-250), default 100 (SD) 180 (HD)

-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

[Bearbeiten] Tipps

[Bearbeiten] 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.

[Bearbeiten] Schnittmarken verschieben

Um das Schnittmarken zu verschieben, sollte man die Aufnahme starten und die einzelnen Schnittmarken mit den Tasten
7
(springt zurück) oder
9
(springt vor) der Fernbedienung ansteuern und mit
4
(zurück) oder
6
(vor) feinjustieren. Ist man mit dem Ergebnis zufrieden, drückt man die
2
: Der Schnitt wird nun gestartet. Eine Ausführliche Beschreibung zum Thema Schneiden einer Aufzeichnung findet Ihr hier: Benutzerhandbuch

Wer ohne Kopie schneiden möchte, sollte sich cutinplace mal genauer anschauen.

[Bearbeiten] Werbung überspringen

Für das überspringen der von markad erzeugten Schnittmarken, bei der Wiedergabe von Aufnahmen, empfiehlt sich der jumpplay-patch.

[Bearbeiten] Entwickler

VERALTET! git clone git://projects.vdr-developer.org/vdr-plugin-markad.git

Aktuell: https: //github.com/kfb77/vdr-plugin-markad

[Bearbeiten] Aktuelle Version

[https: //github.com/kfb77/vdr-plugin-markad master]

[Bearbeiten] Links

  1. Homepage des Programms
In anderen Sprachen