Werbe-Erkennung per Skript funktioniert - manchmal...

  • Hi zusammen,


    wie (unvorsichtigerweise;)) in einem anderen Thread angekündigt, stelle ich jetzt mal meine Veruche zur automatischen Werbe-Erkennung ins Forum. Das ganze ist eine mühsame Geschichte und nicht wirklich nutzbar, aber vielleicht ein erster Schritt...


    Was geht:
    Die unteren schwarzen Ränder werden erkannt und die Aufnahme wird automatisch in Werbung und Film unterteilt, es wird eine marks.vdr erzeugt.


    Was geht nicht:
    das klappt nur manchmal, und auch nicht immer akurat.


    Wie macht das Skript genau:


    In erster Linie ruft das Skript ständig mplayer mit den Optionen:

    Code
    -vo null -ao null -speed 100 -vop cropdetect


    auf, liest den output ein und entscheidet dann, ob es sich um Werbung oder Film handelt. Im Einzelnen:


    • Zuerst wird alle 30 Sec des Films 1 Sec herausgeholt, und an mplayer verfüttert. Die Ergebnisse werden extrahiert (unterer schwarzer Rand) und zwischengespeichert (dauert ca 2 min für knapp 3h Film)


    • Dann wird in allen Ergebnissen nach dem am häufigsten vorkommenden Wert für den unteren schwarzen Rand gesucht. Wenn kein Wert öfter als in 50 Prozent der Fälle vorkommt, dann bricht das Skript ab (ist aber beim testen nicht vorgekommen). Wenn es so einen Wert gibt, dann ist das der Filmrand und das Kriterium für alle folgenden Schritte.


    • Anschliessend entscheidet das Skript für jede einzelne Testsekunde, ob es sich um Film oder Werbung handelt, natürlich anhand der im ersten Schritt ermittelten Werte. Dabei wird nur bestimmt, ob der Wert für den unteren schwarzen Rand mindestens so gross oder grösser ist wie der Wert für den Film. Sonst gibt es Aerger mit dunkelen Szenen.
      Dadurch entstehen schon mal mehr oder weniger lange Anschnitte, die Werbung oder Film zugeordnet sind.


    • Film-Abschnitte, die eine bestimmte Länge unterschreiten (Vorseinstellung 3 min) werden aus der Liste gelöscht und in Werbung umdefiniert.


    • Abschliessend werden die genauen Uebergänge gesucht, hierzu analysiert das Skript ein paar Bilder zwischen den Abschnitten. Beispiel:


      Die ersten 8 Abschnitte einer Aufnahme wurden "Werbung" zugeordnet, dann gibt es 40 Abschnitte "Film" ( 8 - 48 ). Da jeder Abschnitt 30 sec lang ist, startet das Skript mit der Analyse bei 240 sec (also am Ende des Werbe-Abschnitts).
      Dort wird überprüft, ob sich die nächsten 0.5 Sec Werbung oder Film zuordnen lassen. Ist es Werbung, dann wiederholt das Skript die Ueberprüfung bei 240.5 Sekunden, dann bei 241 Sekunden usw. Findet das Slript einen 0.5 Sec Abschnitt, der nach Film aussieht, werden die nächsten 10 sec ebenfalls daraufhin überprüft. Ist auch das Film, wird die Schnittmarke gesetzt und das Skript springt zum nächsten Uebergang, im Beispiel bei 48 * 30 Sekunden, und wiederholt da den Scan, nur das es einen Uebergang von Film zu Werbung sucht.


      Wenn alles durchgescannt ist, wird eine detected_marks.vdr geschrieben.
      Dauert alles zusammen ca 5:40 min, je mehr Schnitte, desto länger.


    Soweit erstmal die Funktionsweise, wie klappt es nun?


    So lala, wenn es gar nicht klappen würde, dann würde ich es nicht posten. Folgende Probleme sind aufgefallen:

    • In der Werbung tauchen öfter schwarze Balken auf, als einem lieb ist. Die machen Aerger.
    • Die Programm-Hinweise bei Pro7 laufen auch oft mit schwarzen Balken, allerdings befindet sich bei denen dann das Logo im oberen schwarzen balken, und nicht im Bild, so wie während des Films. Vielleicht sollte man doch den oberen Balken zusätzlich heranziehen.
    • Weisse Streifen am oberen oder unteren Rand killen das Skript, nix zu machen (oder besser gesagt, den mplayer). Wenn jemand weiss, mit welchen Parametern ich erst das Bild zuschneiden kann, und dann die cropdetection starten kann, dann wäre das schon mal gelöst.
    • Die ganze Logik ist etwas "wackelig" ;)


    Naja, wer spielen will und zuviel Zeit hat, der kann sich ja das Ding mal runterladen, es ausprobieren und/oder verbessern.


    Aufgerufen wirds mit

    Code
    ad_scanner.pl /PFAD/ZUR/AUFNAHME


    Also nicht die .vdr Dateien selbst angeben, sondern das Verzeichnis.


    Einstellungen, an denen man schrauben kann, finden sich an Anfang des Skripts:


    Code
    # PLEASE ADJUST VALUES HERE
    my $interval         = 30;        # Check GOPs (ca 12 Pictures) every nn seconds
    my $gops2check       = 3;         # check nn GOPs
    my $min_movie_length = 180;       # minmal length for a movie bit to be accepted in seconds
    my $min_ad_length    = 30;        # minmal length for am advertisement bit in seconds, NOT USED
    my $final_check_gops = 20;        # number of GOPS to check for the last analysis
    
    
    my $mspeed           = 100;       # this is the speed parameter for mplayer, might be too fast on your machine


    • $interval gibt an, alle wieviel Sekunden eine Test-Schnipsel extrahiert wird
    • $gops2check gibt an, wie lang ein Test-Schnipsel sein soll (in GOPS, ca 0.5 Sek. pro GOP)
    • $min_movie_length gibt an, wie lang ein Stück Film min sein muss, um so akzeptiert zu werden. Es könnte ja auch ein Werbespot mit schwarzen Ränder sein...
    • $min_ad_length genauso, wird aber nicht benutzt
    • $final_check_gops Anzahl der GOPs, die beim letzen Check analysiert werden, also wenn ein potentieller Uebergang gefunden wurde, werden nochmals nn GOPs danach gecheckt.
    • $mspeed ist der -speed Parameter für mplayer, wenn gar nicht geht, sollte man den mal auf 1 setzen


    So, wie gehts jetzt weiter?


    Für mich mit diesem Skript wohl erstmal gar nicht, ich wende mich wieder vdrsync und versprochenen Patches zu. Wenn allerdings jemand von Euch was daran basteln würde, dann würde ich schon noch mitmischen ;).


    Achja, wenn Ihr wissen wollt, ob das Skript wirklich funktioniert hat, dann müsst Ihr natürlich die detected_marks.vdr in das Filmverzeichnis reinkopieren, und zwar als marks.vdr. Und dann per vdr kontrollieren, wo die Dinger sitzen.


    Und wenn Ihr wirklich mit Entwickeln/Testen wollt, dann schaut mal ans Ende vom Skript und nehmt die Kommentar Zeichen vor diesen Zeilen raus:

    Code
    ##################################################
    # TO CHECK WHAT GOING ON UNCOMMENT THE NEXT 3 LINES AND HAVE A LOOK 
    # AT THE FILES THAT THIS SCRIPT GENERATES
    ########################################################
    #	open OF, ">./gop$frameno.vdr";
    #	print OF $video_stream;
    #	close OF;


    Dann gibt es jede Menge Schnipsel auf der Platte, die man dann ansehen kann. Und darüber philosophieren, warum die falsch erkannt wurden.... Und mplayer drüberbügeln. damit man die Parameter verbessern kann.... ;)



    Cheers


    doc

  • hi doc,


    bei mir bricht das script ab
    das sind die letzten zeilen die auf der konsole erscheinen.


    Code
    we got 32 frames with a correct bottom border, and 0 with smaller one
    therefore, this is a movie bit
    trying to remove movie bits that are too small...
    Use of uninitialized value in pattern match (m//) at /usr/local/bin/ad_scanner.pl line 193.


    ich habe als film animatrix genommen und einen kurzen anfang vom film dann werbung und dann am ende nochmal etwas vom film genommen zum ausprobieren.


    vielleicht weisst du eine lösung


    mfg
    ernie

  • Hi ernie,



    Das Script scheint nicht einen einzigen Abschnitt definiert zu haben, das ist recht schlecht. Ich könnte einfach eine Abfrage einbauen, die das Skript "eleganter" beendet als mit einer Fehlermeldung, aber im Prinzip macht das ja keinen Unterschied. Kannst Du das Ding mal so aufrufen, dass die Ausgaben in eine Datei geschrieben werden, und mir das log mailen?
    Also
    ./ad_scanner.pl > output.log


    und dann mail an vdrsync@gmx.net mit dem output.log als Attachment.


    Hast Du in der Aufnahme unten einen schmalen, weissen Streifen?


    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Hi ernie,


    Danke für das output.log, damit ist klar, was passiert.....


    Du hast mehr "Werbung" als "Movie" in Deiner Probe-Aufnahme:


    Zitat


    we got 218 for value 575, that is 218 of 402 or 54.228855721393 percent
    It looks really good for the value of 575


    d.H. 54 Prozent aller Bilder haben überhaupt keinen schwarzen Rand unten (576 ist die volle Bildschirmhöhe).


    Dieser Rand wird vom Skript als Rand für das Movie definiert, da das Skript ja irgendwie entscheiden muss, welcher Wert für das Movie genommen werden soll. Also nimmt es den Wert, der öfter als 50% vorkommt.


    In Deinem Fall wird also die Aufnahme nach Bildern durchsucht, die einen Rand unten grösser als 0 haben - also alle.


    Deshalb "glaubt" das Script, dass es gar keine Werbung gibt, und bricht ab. Zum Testen benötigst Du eine Aufnahme, die mehr als 50 Prozent Movie hat, am besten mehr als 60 Prozent.


    Versuchs mal mit einer anders geschnittenen Aufnahme.


    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • hi,
    danke funktioniert jetzt.


    aber etwas stimmt mich noch komisch.
    er hat die werbung als behalten gekennzeichnit,
    aber das kann ich auch einfach ändern indem ich im anfang
    und am ende eine schnittmarke setze.


    nochmal danke für das kleine programm


    mfg
    ernie

  • Hi ernie,


    Zitat

    Original von ernie
    hi,
    danke funktioniert jetzt.


    Kannst Du das etwas genauer sagen ;)?


    Zitat


    aber etwas stimmt mich noch komisch.
    er hat die werbung als behalten gekennzeichnit,
    aber das kann ich auch einfach ändern indem ich im anfang
    und am ende eine schnittmarke setze.


    Ja, das mit den marks...... Ich habe nicht wirklich darauf geachtet, dass die Anzahl der marks stimmt, um die Movie-Abschnitte zu behalten und die Werbe-Abschnitte zu verwerfen. Das ist mir aber nicht weiter aufgefallen, weil alle meine Testaufnahmen mit Werbung anfangen, und mit Werbung aufhören.


    Zitat


    nochmal danke für das kleine programm


    mfg
    ernie


    Danke fürs Testen ;)


    Wenn es wirklich von Nutzen sein sollte, dann kann ich schon noch ein paar Kleinigkeiten verbessern. Kommt auf das weitere Feedback an :)


    cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

    Einmal editiert, zuletzt von Doc ()

  • Hi !


    Doc


    Zitat

    Wenn es wirklich von Nutzen sein sollte, dann kann ich schon noch ein paar Kleinigkeiten verbessern. Kommt auf das weitere Feedback an


    Naja... Machen wir uns nix vor... Das, was Du da gerade programmierst, ist so etwas wie der "Heilige Gral" aller TV-Glotzer: Werbung überspringen auf Knopfdruck. Wenn das tatsächlich vernünftig funktioniert, kannst Du auf ein Leben voller Ruhm, Reichtum und Frauen freuen. :D


    Ich werde das Skript heute Abend mal an den 7 Enterprise-Folgen ausprobieren, die noch in meiner Box schlummern. :]

    VDR1: Athlon XP@1200+, DVB-S FF1.6 + Nova, 112W Netzteil, Atric IR Einschalter
    VDR2: Celeron 533, DXR3, 2 x Skystar, Atric IR Einschalter
    jeweils Mahlzeit 3.2 + Toxic 1.4.7 (Extp. 34)
    ...seit vdr-1.0.3 dabei. Boah ist das geil geworden. :D

  • Hi Boergen,

    Zitat

    Original von Boergen


    Wenn das tatsächlich vernünftig funktioniert, kannst Du auf ein Leben voller Ruhm, Reichtum und Frauen freuen. :D


    Wäre ok für mich, ich muss mal mit meiner Feundin drüber sprechen ;)

    Zitat


    Ich werde das Skript heute Abend mal an den 7 Enterprise-Folgen ausprobieren, die noch in meiner Box schlummern. :]


    Na hoffentlich haben die schwarze Balken oben und unten, sonst wird das nix....


    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Nur so zur Insiration, was man noch machen kann:


    Ich habe mal vor kurzem was von automatischem rausschneiden von Werbung im doom9 - forum gelesen.


    Es gibt noch ein paar weiter Ansaetze:


    - Werbung wird lauter ausgestrahlt als der eigentliche Film (bis zu 120%!). Allerdings ist dann eine genaue Analyse der Maximalen Lautstärke noetig...nicht gerade einfach


    - Werbung hat keine Logos. Es gibt da wohl irgendeinen Algo, der nach dem Logo sucht. Allerdings gibt es inzwischen Sender mit dynamischen Logos (RTLII, MTV...)


    - Das Tonformat ist bei manchen Filmen AC3/Dolby Digital, bei Werbung in der Regel nicht.


    - Filme haben schwarze Balken (das ist Dein Ansatz) :)


    - Werbung ist "hektischer" als ein Film (mehr Schnitte ind kutzen Abstaenden) aber man denke nur an eine Action-szene oder am Musikclips...


    Leider ist der Mensch wahnsinnig gut geeignet Werbung und Programm zu unterscheiden...der Computer aber noch lange nicht...


    Aber die Idee über den schwarzen Balken via mplayer ist verdammt geil! Bitte nicht aufhoeren :)


    Frank

    AMD E4050, Debian testing/unstable, TT S-1401 + TT S2-3200 (ein Kabel LNB-Shared), VDR1.7.xx+Extensions-patch und so ziemlich jedem Plugin, das es auf der Welt gibt...

  • Hi Taros666,


    ja, es gab auch hier im Board mal einen Thread, bei dem diese Dinge diskutiert wiurden - nur programmiert hat keiner was :(


    Zitat


    - Werbung wird lauter ausgestrahlt als der eigentliche Film (bis zu 120%!). Allerdings ist dann eine genaue Analyse der Maximalen Lautstärke noetig...nicht gerade einfach


    Vielleicht nicht schwerer als die anderen Sachen, da man auch per externem Programm eine Konvertierung in Wave vornehmen kann, und das ist nicht sooo schwer zu analysieren, glaube ich. Aber ich mag das aus einem anderen Grund nicht so gern - es gibt keine "scharfen" Uebergänge, nur wenn der Sender ein lautes Jingel reinballert. Und dieses Merkmal schwankt noch stärker als die schwarzen Ränder.


    Zitat


    - Werbung hat keine Logos. Es gibt da wohl irgendeinen Algo, der nach dem Logo sucht. Allerdings gibt es inzwischen Sender mit dynamischen Logos (RTLII, MTV...)


    Zum einen gibt es die dynamischen Logos, deshalb analysiere ich nur den unteren schwarzen Balken. Zum anderen kann ich gar keine Bildanalyse programmieren, sondern lasse mplayer für mich schuften :D

    Zitat


    - Das Tonformat ist bei manchen Filmen AC3/Dolby Digital, bei Werbung in der Regel nicht.


    Das wäre noch wirklich interessiert, ich kann das aber fast nicht glauben.... Vielleicht eher ein Wechsel von 5.1 auf 2 Kanal AC3?


    Zitat


    - Filme haben schwarze Balken (das ist Dein Ansatz)


    Nicht "meiner", aber den habe ich verwurstet;)

    Zitat


    - Werbung ist "hektischer" als ein Film (mehr Schnitte ind kutzen Abstaenden) aber man denke nur an eine Action-szene oder am Musikclips...


    Das ist auch nix für mich, ist ja wieder Bildanalyse. Und dann auch nicht mit statistischer Auswertung und so. Ich bin mehr der "if ... then" Programmierer ;)



    Zitat


    Bitte nicht aufhoeren

    Frank


    Hast Du das Ding denn schon mal ausprobiert ;)?


    cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

    Einmal editiert, zuletzt von Doc ()

  • Mangels ungeschnittenem Material konnte ich das script noch nicht testen, aber ich hab noch was:
    - Schwarzbild analyse: Zwischen jedem Werbespot und jedem Werbeblock sind kurze Momente eines echten Schwarzbilds zu sehen.


    Das Problem von VDR ist aber, dass es den Stream so aufnimmt, wie er gesendet wird und man beim schneiden immer I frames treffen muss. Mit etwas Glueck ist der I-Frame ein Schwarzbild, in der Regel aber leider nicht :(


    EIn Programm fuer Windows, das so zeimlich alles beruecksichtigt was es gibt ist Karin:
    http://toonarchive.com/karin/main.php3


    Mit vollem source :)


    Ich weiss, dass das nix fuer Dich ist DOC, da Du (wie ich) lieber scriptest als OO zu programmieren, aber die Ansaetze sind schon mal sehr gut und man kann sich die Durchführung anschauen.
    Das soll also keine Aufforderung an Dich persoenlich sein, das alles zu implementieren, sondern zeigen, was alles moeglich ist...



    Frank

    AMD E4050, Debian testing/unstable, TT S-1401 + TT S2-3200 (ein Kabel LNB-Shared), VDR1.7.xx+Extensions-patch und so ziemlich jedem Plugin, das es auf der Welt gibt...

  • Hi Taros666,


    Zitat

    Original von Taros666
    Mangels ungeschnittenem Material konnte ich das script noch nicht testen, aber ich hab noch was:
    - Schwarzbild analyse: Zwischen jedem Werbespot und jedem Werbeblock sind kurze Momente eines echten Schwarzbilds zu sehen.


    Das ist interessant, allerdings ist Darth Vader vor dunklem Hintergrund auch "komplett" schwarz für mplayer...

    Zitat


    Das Problem von VDR ist aber, dass es den Stream so aufnimmt, wie er gesendet wird und man beim schneiden immer I frames treffen muss. Mit etwas Glueck ist der I-Frame ein Schwarzbild, in der Regel aber leider nicht :(


    Das ist ein generelles Schneide Problem, aber keines für die Erkennung.... Man könnte sowas machen wie: Kurze, schnelle Schwarzbild-wechsel beweisen Werbung. Allerdings klappt das mit der Werbung bei meinen Tests ganz gut, die blöden Programm-Hinweise ärgern noch mehr.

    Zitat


    EIn Programm fuer Windows, das so zeimlich alles beruecksichtigt was es gibt ist Karin:
    http://toonarchive.com/karin/main.php3


    Mit vollem source :)


    Cool, ich kann ja mal schauen, was ich so verstehe

    Zitat


    Ich weiss, dass das nix fuer Dich ist DOC, da Du (wie ich) lieber scriptest als OO zu programmieren, aber die Ansaetze sind schon mal sehr gut und man kann sich die Durchführung anschauen.
    Das soll also keine Aufforderung an Dich persoenlich sein, das alles zu implementieren, sondern zeigen, was alles moeglich ist...


    Na, da bin ich beruhigt ;) Das mit dem Skripten ist nicht nur eine Frage des "lieber scripten", ich kann halt nicht wirklich programmieren. Allerdings habe ich versucht, auch vdrsync in OO perl zu schreiben, damit man es leichter wiederverwenden kann.


    Vielen Dank für die Tips :)

    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Hi Doc,


    nen Cropdetect über einen Teilbereich des Bildes kannst du (ungetestet) z.b. so machen:
    mplayer -vop cropdetect=40,crop=708:432:6:72 001.mpg


    Die verschiedenen vop-filter werden immer von rechts nach links angewandt.
    Letztens ist mir auch aufgefallen, dass die Werbung oft ebenfalls Balken hat. Genaugenommen ist mir dabei eingefallen, dass mir das vor nem halben Jahr schon mal aufgefallen war....


    Glaube auch nicht so recht, dass es was bringt, die Sache großartig zu verfolgen, aber noch zwei Gedanken:


    - Man könnte auch manuell eine Schnittmarke an 1 oder 2 für die Aufnahme repräsentativen Stellen setzen. Vielleicht würde das dem Script helfen.
    - Und weiterhin wäre es auch schon eine Hilfe, wenn das Script überall dort eine Schnittmarke setzen würde, wo es Werbung vermutet. Einen Mindestabstand zwischen solchen Marken müsste man wohl definieren. Dann müsste man die Werbung beim Schneiden wenigstens nicht suchen;-)
    Vielleicht würde als Kriterium dafür auch schon die Geschichte mit der Lautstärkeerkennung ausreichen.


    grüße


    metrio

  • Da faellt mir noch was ein (Achtung, jetzt bricht der Kommunikationspsychologe bei mir durch!):
    Deutschland hat sehr genaue Vorgaben fuer die Werbung. So darf in einer Stunde max. 20% Werbung (=12 min.) sein und das ganze muss als Block ausgestrahlt werden. Dabei darf es je nach länge nur eine bestimmte Anzahl von Blöcken geben und zwischen Werbeblöcken MÜSSEN 20 min. "normales" Programm sein! (wenn also sicher eine Werbung gefunden wurde kann die naechste erst wieder in 20 min kommen!)
    (ich glaube es sind max. 2 Bloecke/h)
    Wenn bei Pro7 immer 7-8 min Werbung ist liegt das an der Eigenwerbung/Programmhinweisen, die nicht als Spotwerbung angesehen wird...


    Vielleicht hilft das auch Werbung/Programm genauer zu definieren....


    Frank


    P.S. Natuerlich gibt es immer wieder Verstoesse gegen die Regelungen. Wenn das script also nicht geht, und es an der Missachtung der Richtlinien liegt, dann kann man die Rundfunkanstalten so richtig in die Pfanne hauen ;)
    Hoffentlich sind diese Daten noch aktuell. Ist schon 2 Jahre her, als ich das gelernt habe...

    AMD E4050, Debian testing/unstable, TT S-1401 + TT S2-3200 (ein Kabel LNB-Shared), VDR1.7.xx+Extensions-patch und so ziemlich jedem Plugin, das es auf der Welt gibt...

  • Hi zusammen,


    @ metrio

    Zitat

    nen Cropdetect über einen Teilbereich des Bildes kannst du (ungetestet) z.b. so machen: mplayer -vop cropdetect=40,crop=708:432:6:72 001.mpg


    Das klappt leider nicht, schade :(

    Zitat

    Man könnte auch manuell eine Schnittmarke an 1 oder 2 für die Aufnahme repräsentativen Stellen setzen. Vielleicht würde das dem Script helfen.


    Eventuell könnte das script auch auf die Timer/EPG Daten zurückgreifen, aber das schaue ich mir jetzt erstmal nicht an.


    Zitat


    - Und weiterhin wäre es auch schon eine Hilfe, wenn das Script überall dort eine Schnittmarke setzen würde, wo es Werbung vermutet. Einen Mindestabstand zwischen solchen Marken müsste man wohl definieren. Dann müsste man die Werbung beim Schneiden wenigstens nicht suchen;-)


    Das sollte es jetzt schon tun, versuchs einfach mal ;)


    @ Taros666

    Zitat

    So darf in einer Stunde max. 20% Werbung (=12 min.) sein und das ganze muss als Block ausgestrahlt werden. Dabei darf es je nach länge nur eine bestimmte Anzahl von Blöcken geben und zwischen Werbeblöcken MÜSSEN 20 min. "normales" Programm sein! (wenn also sicher eine Werbung gefunden wurde kann die naechste erst wieder in 20 min kommen!) (ich glaube es sind max. 2 Bloecke/h) Wenn bei Pro7 immer 7-8 min Werbung ist liegt das an der Eigenwerbung/Programmhinweisen, die nicht als Spotwerbung angesehen wird...


    Tjaaaa, das könnte man eigentlich ganz Klasse ausnutzen, aber der Teufel steckt im Detail...


    Das letzt Stück Film muss offensichtlich nicht mehr 20 min lang sein. Nur der Abstand zwischen den Werbeblöcken muss so lang sein.
    Was heisst das für das Skript? Wenn das Skript die Uhrzeit des Movie-Anfangs und des Movie-Endes kennen würde, dann könnte es ganz prima funktionieren:
    Den genauen Anfang suchen (aus der File-Creation Time und der Anzahl der aufgenommenen Frames), dann mindestens 20 min movie voraussetzen, dann die Werbung suchen und wieder 20 min Movie vorausssetzen usw. Bis zum letzten Movie-Block, da weiss das Skript dann aber, dass der Film gleich sowieso zu Ende gehen muss, also auch gut.



    Aber:
    - Es gibt kein VPS, was passiert also bei Verschiebungen?
    - Das Skript nutzt auch die EPG Daten bis jetzt nicht, und die bräuchte man. (wie lange bleiben alten Daten eigentlich in epg.data drin? Vielleicht würde das ja reichen. Oder bekommt man die Daten auch woanders her (jaja, über TVTV oder so))
    - Die Sender fangen ja auch gerne mal etwas später an.
    - Es gibt ja nicht nur deutsche Sender


    Fazit:


    Man könnte noch gaaaanz viel optimieren, mit ebensoviel Aufwand, aber erstmal liegt das Ding zum Testen bereit. Wenn es bei einigen Usern so gut funktioniert, dass sie sagen würden "Ja, das will ich automatisch nach jeder Aufnahme laufen lassen", dann kann man es ja weiter tunen. Wenn nicht, dann lohnt der Aufwand nicht...


    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Hi Doc,

    Zitat

    Original von Doc
    @ metrio


    Das klappt leider nicht, schade :(


    komisch


    Zitat


    Das sollte es jetzt schon tun, versuchs einfach mal ;)


    Ok - muss aber erst mal warten, bis wieder was mit Werbung kommt, und das passiert bei mir eher selten:-).


    Zitat


    Das letzt Stück Film muss offensichtlich nicht mehr 20 min lang sein.


    Trifft das auf das erste Stück nicht auch zu?


    Zitat


    - Das Skript nutzt auch die EPG Daten bis jetzt nicht, und die bräuchte man. (wie lange bleiben alten Daten eigentlich in epg.data drin? Vielleicht würde das ja reichen. Oder bekommt man die Daten auch woanders her (jaja, über TVTV oder so))


    Den Anfang zumindest könnte man aus dem Verzeichnisnahmen + Offset nehmen. Gibt aber auch irgendwo nen Patch, der das epg länger vorhält. Oder die Daten einfach vor jeder Aufnahme per Script sichern.


    grüße


    metrio

  • Hi metrio,


    Zitat


    Ok - muss aber erst mal warten, bis wieder was mit Werbung kommt, und das passiert bei mir eher selten:-).


    Es reicht, wenn was mit schwarzen Balken kommt. Das Skript sollte dann marks am Anfang des Films und am Ende setzen ;)

    Zitat


    Trifft das auf das erste Stück nicht auch zu?


    Hmm, keine Ahnung.... wahrscheinlich schon. Naja, sonst wäre es auch zu einfach ;)

    Zitat

    Den Anfang zumindest könnte man aus dem Verzeichnisnahmen + Offset nehmen. Gibt aber auch irgendwo nen Patch, der das epg länger vorhält. Oder die Daten einfach vor jeder Aufnahme per Script sichern.


    Meine Verzeichnisnamen geben da nicht viel her, die enthalten den Aufnahmestart, aber nicht den Filmstart, oder liege ich da ganz falsch?
    Ein Patch ist ws nicht so gut, den benutzt dann wieder keiner. Eher die EPG Daten vorher sichern, aber dann muss das Skript immer laufen.


    Mal schaun...


    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Hi Doc,

    Zitat

    Original von Doc
    Es reicht, wenn was mit schwarzen Balken kommt. Das Skript sollte dann marks am Anfang des Films und am Ende setzen ;)


    Schwierig - sind meistens Dokus der Ö-Re., und gerade beim Abspann wird man da kaum was machen können. Da sind Abspann und Werbung für sonstige Sendungen in einem. Schneiden tu ich immer dann, wenn die Schrift aufhört. Aber insbesondere: Wenn ich nach dem Anfang 43 Minuten nach vorne Springe, dann liege ich schon ziemlich richtig:-). Aber ich werde mal gucken, was passiert;-).


    Zitat


    Meine Verzeichnisnamen geben da nicht viel her, die enthalten den Aufnahmestart, aber nicht den Filmstart, oder liege ich da ganz falsch?


    Mal abgesehen von Verschiebungen, wobei das epg ja auch nicht weiterhilft, hat man doch i.d.R. einen festen Offset zwischen Aufnahmestart und Filmbeginn.


    Zitat


    Ein Patch ist ws nicht so gut, den benutzt dann wieder keiner. Eher die EPG Daten vorher sichern, aber dann muss das Skript immer laufen.


    ne - vdr kann doch vor/nach Aufnahmen genauso wie beim Schneiden ein Script starten. Muss man da nur einbinden.


    grüße


    metrio

  • Hi Metrio,


    Zitat

    Original von metrio



    Mal abgesehen von Verschiebungen, wobei das epg ja auch nicht weiterhilft, hat man doch i.d.R. einen festen Offset zwischen Aufnahmestart und Filmbeginn.



    ne - vdr kann doch vor/nach Aufnahmen genauso wie beim Schneiden ein Script starten. Muss man da nur einbinden.


    Da kann man ja tatsächlich einen guten Teil der Probleme lösen :)


    Am besten also:

    • Beim Aufnahmestart die epg.data sichern.
    • Am Ende das Skript starten, dass dann aus dem Verzeichnisnamen und dem "Aufnahmeoffset" (den kriegt man aus der setup.conf) oder den EPG.Daten den Film Anfang und das Ende berechnet.
    • Innerhalb der Aufnahme lässt mit Hilfe der index.vdr ganz gut navigieren, das macht das Skript jetzt schon. Mit den zusätzlichen Infos gehts dann noch besser, da zB der nachfolgende Film nicht stört, von dem auch oft schon ein Stück in der Aufnahme drin steckt.


    Am besten noch eine per-channel config einlesen (Pro7 Balken oben und unten, Sender XY nur unten etc)


    Nur einbauen muss das jemand ;)


    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

Jetzt mitmachen!

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