Werbung per AVISynth erkennen

  • Hallo,

    ich nehm' zum rausschneiden von Werbung in DVB Aufnahmen immer AVISynth Script, indem ich als erstes das Video ins richtige Format bringe, dann den Ton per mpasource decodiere, Video und Audio zusammen führe und dann mit dem trim Befehl schneide (ich hab im Moment leider kein Beispiel, da ich noch in der Arbeit sitze). Bei Aufnahem mit AC3 Ton kann ich leicht mit dem Log aus ProjectX die Werbung erkennen, bei Aufnahmen mit mpa Ton muss ich immer das komplette Video durchsuchen. Für diesen Zweck hab ich mir schon ein Script gebastelt, mit dem ich nur jedes 500 Frame ausgebe und die Framerate auf 1fps setze, so war es schon leichter das komplette Video zu durchsuchen. Gestern hab ich dann versucht die Werbung per compare Befehl zu erkennen. Einfach mit crop(0,0,16,16) einen 16x16 Block erstellt und einen schwarzen Block erstellt. Da der Film im 16:9 Format war konnte ich aus dem Logfile erkennen wann der Film ins 4:3 Format wechselt. Das durchsehen des Logfiles geht schon schneller und sicherer als jedes 500 frames an zu sehen, aber gibt es vielleicht noch eine bessere Möglichkeit? Also meine eigentliche Frage:

    Wie erkennt ihr Werbung in Fernsehaufnahmen?


    Hier noch ein Beispiel für die genannten Scripts:

    Code
    LoadPlugin("E:\Video\Editing\AviSynth\plugins\mpeg2dec3.dll") LoadPlugin("E:\Video\Editing\AviSynth\plugins\mpasource.dll")  Video = mpeg2source("J:\ToCompress\Der Patriot\Der Patriot.d2v") Video = Video.FieldDeinterlace(blend=false) Video = Video.crop(4,120,712,336) Video = Video.LanczosResize(640,272)  Audio = mpasource("000.mp2", normalize = false)  Mux = AudioDub(Video, Audio) Mux = Mux.trim(0,15754) + Mux.trim(21193,54652) + Mux.trim(59295,89989) + Mux.trim(94505,139431) + Mux.trim(144108,246001)  return Mux



    Code
    LoadPlugin("E:\Video\Editing\AviSynth\plugins\mpeg2dec3.dll") Video = mpeg2source("J:\ToCompress\Der Patriot\Der Patriot.d2v") Video = Video.crop(0,0,16,16) Video = Video.ConvertToYUY2() Black = BlankClip(length=3000, width=16, height=16, fps=1, color=$000000).ConvertToYUY2() Video = Compare(Video,Black,"","compare.txt")  return Video



    Code
    AviSource("Der Patriot.avs", false)
     SelectRangeEvery(500,1)
     AssumeFPS(1)
  • Hi,


    man müsste aus dem Compare Befehle nen Boolschen Wert erzeugen (0/1 bzw. ja/nein) und das auch noch möglichst mit ner gewissen Toleranz, damit der nicht schon auf leichstes Bildrauschen reagiert.
    Das sollte sich dann auch leicht auf analyse des Senderlogos übertragen lassen.
    Hab aber im Moment keinen Plan wie man da am besten vorgeht.

    Da fällt mir noch gerade dritte gute Methode ein:
    Der Audiopegel steigt ordentlich an, wenn die Werbung beginnt. Das müsste man auch auswerten können.


    .....cu

Jetzt mitmachen!

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