Schwarze Bildfolge in Video einfügen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Schwarze Bildfolge in Video einfügen

    Anzeige
    Awinke Community,

    ich müsste eine ~ 2 Sekunden lange Sequenz in einem Video "schwärzen", also einfach nur das aktuelle Video mit schwarz überlagern, währen Video und Audio weiterlaufen.
    Ist kein LP sondern ein Video, in dem eine Person auftaucht, die da nicht auftauchen will ;)
    Was wäre denn da die am wenigsten aufwendige Methode?
    Ich bin kein Arsch, ich bin nur ehrlich...!

    Besuch' mich doch mal auf YouTube
  • Anzeige
    Mit Avisynth via BlankClip.

    avisynth.nl/index.php/BlankClip

    edit: Achso falsch gelesen beim überfliegen, willstes nich anfügen/vor setzen, sondern drauf legen.

    Aber im Grunde das selbe. Dann kommt der BlankClip als overlay aufs Video. Auch kein Thema ^^
    Aktuelle Projekte/Videos




    Seit etlichen Monaten komplett veraltete Signatur, wie ihr sicherlich schon bemerkt habt. Habe mittlerweile mehr als 4 Projekte, weshalb die Signatur leider momentan gesprengt ist xD
    Notdürftig die Liste was aktuell läuft: Unreal | Complex DooM (LPT) | DooM 2016 | Need For Speed III: Hot Pursuit | Dirt Rally | Dirt 4 | WRC 7
  • De-M-oN schrieb:

    avisynth.nl/index.php/BlankClip

    (...) Dann kommt der BlankClip als overlay aufs Video. Auch kein Thema ^^

    OK, wie ich einen "BlankClip" produziere, weiß ich jetzt (danke dafür!), aber wie bekomme ich das jetzt auf´s Video?
    Sorry, ich habe mich mit der Thematik noch nie auseinandergesetzt, bisher musste ich keine Videos bearbeiten (zumindest nicht in dieser Form), sondern immer nur en- oder recoden.
    Ich hatte mir ja schon ein 640x480 großes schwarzes Bild in PS erstellt und hatte nun auf eine, mehr oder weniger, Oneklick-Lösung gehofft... ;)
    Fast hätte ich es in Premiere Pro 2 auch geschafft, aber die Datei ist bei nur 5:15Min 1,1 GB groß...
    Wenn ich diese in Staxrip packen will sagt er mir "x264 requires YV12 input", was wohl nicht gegeben ist... ich habe schon gesucht, aber nichts finden können (evtl kann Premiere Pro 2 das gar nicht?).
    Darüber hinaus, liegt das Video in .MOV vor und ich musste es ohnehin schon umwandeln in.avi, damit Premiere es überhaupt frisst, dann noch mal ein re-encode von Premiere und jetzt müsste ich es (wegen der Dateigröße), ja grad nochmal umwandeln. Das alles zusammen mit der Auflösung (640x480)= BÄH! :)
    Ich würde am liebsten die .mov direkt mit dem schwarzen Bild konfrontieren und es dann einmal umwandeln (aber das scheint nicht so einfach zu gehen, wenn ich mir Google dazu ansehe). Von mir aus auch einmal in ein gängigeres Format umwandeln und dann, die Sache mit dem schwarzen Bild und dem nochmaligen Umwandeln.
    Ich bin kein Arsch, ich bin nur ehrlich...!

    Besuch' mich doch mal auf YouTube

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MarioZockt ()

  • In AVISynth einen Bereich unkenntlich machen geht so:

    Quellcode

    1. AVISource("Test.avi").AssumeFPS(30, 1) # Die 30 steht für die tatsächliche FPS des Videos.
    2. #Hier wird jetzt mittels Funktion der Bereich
    3. # 44, 44 bis 88, 88 geblurt (Unkenntlich gemacht) mit einem Faktor von 8.
    4. # Das ganze geht dann von Frame 3000 bis 6000
    5. # Also 100s lang
    6. Verschwimm(44, 44, 88, 88, 1, 8, 3000, 6000)
    7. # ================================
    8. # Verschwimmen eines Bildbereiches
    9. # ================================
    10. # clip0 - Video
    11. # sw, sh, ew, eh - Bildbereich (sw,sh)-(ew,eh)
    12. # px - p Wert für Gaussresize. 1 = Unscharf, 100 = Scharf
    13. # faktor - Verkleinerungsfaktor
    14. # sframe, eframe - Start und Endframe (Zeitliche Position)
    15. Function Verschwimm (clip clip0, int "sw", int "sh", int "ew", int "eh", float "px", int "faktor", int "sframe", int "eframe") {
    16. sw = Default(sw, 0)
    17. sh = Default(sh, 0)
    18. ew = Default(ew, 640)
    19. eh = Default(eh, 480)
    20. px = Default(px, 1)
    21. faktor = Default(faktor, 8)
    22. sframe = Default(sframe, 0)
    23. eframe = Default(eframe, clip0.framecount - 1)
    24. clip1 = (sframe == 1) ? clip0.Trim(0, sframe-2) : clip0.Trim(0, sframe-1)
    25. clip2 = (faktor == 0) ? clip0.Crop(sw, sh, ew, eh) : clip0.GaussResize(clip0.width / faktor, clip0.height / faktor, sw, sh, -clip0.width + ew, -clip0.height + eh, px).Spline16Resize(ew - sw, eh - sh)
    26. clip2 = Overlay(clip0, clip2, x = sw, y = sh).Trim(sframe, eframe)
    27. clip3 = clip0.Trim(eframe+1, clip0.framecount-1)
    28. return (sframe == 0 && eframe == clip0.framecount - 1) ? clip2 : (sframe == 0) ? clip2++clip3 : (eframe == clip0.framecount - 1) ? clip1++clip2 : clip1++clip2++clip3
    29. }
    Alles anzeigen


    Kann man auch noch anders lösen mittels schwarzen Balken wie vorgeschlagen.

    Wenn du den schwarzen Balken vorziehst machst du das ganze so:

    Quellcode

    1. video = AVISource("Test.avi").AssumeFPS(30, 1)
    2. balken = BlankClip(video.framecount, 44, 44, "YV12", video.frameratenumerator, video.frameratedenominator).KillAudio()
    3. ApplyRange(video, 3000, 6000, "Overlay", balken, 44, 44)


    Hier passiert auch nix anderes als im ersten Beispiel oben. Nur halt das der Bereich Schwarz ist, statt Farblich geblurt.

    Dann gäbe es noch die Verpixlung eines Bildbereiches. Dies geschieht auf gleichem Wege wie das erste Beispiel, nur das man die Skalierung des Bereiches noch kleiner macht und sehr scharf hochskaliert, damit es zur Verpixlung des Bereiches kommt.

    Es ist deine Wahl ^^
  • Die MOV ist nix weiter als ein H.264 Container wie auch MKV und MP4 und braucht ganz bestimmt nicht umcodiert werden. Mach halt einfach alles mit Avisynth. Und bitte nutz kein Staxrip, das Ding ist nicht wirklich toll :-/

    Ich empfehle dir MeGUI.

    Hau die .mov in SSM und bau dir noch BlankClip und Overlay ein. SSM -> letsplayforum.de/index.php?page=Thread&threadID=110277

    Quellcode

    1. [...voriger code...]
    2. AVIload("E:\Lets Play DooM\ZANDRO~1_2014_06_19_03_32_02_550.avi", 0, 0, 0, -0, -0)
    3. bild = ImageReader("d:\XVideos\Lets Play DooM\ZDW-Tourn12.png", 0, 250, last.Framerate, pixel_type="rgb32")
    4. [... weiterer code...]
    5. __film = last
    6. __t0 = __film.trim(0, 1095)
    7. __t1 = __film.trim(1096, 1346).Overlay(bild, 58, 58, bild.ShowAlpha().FadeIn(50).FadeOut(50))
    8. __t2 = __film.trim(1347, __film.framecount)
    9. __t0 ++ __t1 ++ __t2


    Erklärung:

    __film= last definiert __film als variable für last. Und last ist der letzte aktive content, also dein video.
    __t0 variable für den framebereich 0 bis 1095
    t1 für 1096 bis 1346. Da setze ich nun mein Overlay drauf. Variable bild hatte ich oben schon definiert und ist der pfad zum bild wo 0 bis 250 die framemenge definiert wie das bild laufen soll und framerate bezieht er sich mit dieser angabe automatisch aus "last" also dem video. RGB32 pixeltype brauchst du ohne alphakanal nicht.
    58 und 58 ist die position wo das bild hin soll (x und y position) da es wohl das ganze video einnehmen soll also 0 und 0 da rein. bild.showalpha brauchst du nicht, das brauchte nur ich wegen alphakanal (sprich transparenter hintergrund) Fade sorgt für ein und ausblenden des bildes. Wird vermutlich auch nicht benötigt.
    t2 für den rest des videos
    mit der letzten zeile setze ich alle teile wieder zu einem ganzen video zusammen.

    edit: ups ich war zu langsam ^^

    Ja ApplyRange geht natürlich auch, aber da stand ich bissl auf kriegsfuß mit wegen farbraum :D
    Aktuelle Projekte/Videos




    Seit etlichen Monaten komplett veraltete Signatur, wie ihr sicherlich schon bemerkt habt. Habe mittlerweile mehr als 4 Projekte, weshalb die Signatur leider momentan gesprengt ist xD
    Notdürftig die Liste was aktuell läuft: Unreal | Complex DooM (LPT) | DooM 2016 | Need For Speed III: Hot Pursuit | Dirt Rally | Dirt 4 | WRC 7
  • @Sagaras
    @De-M-oN

    Danke, danke, danke!

    Ich bin dann jetzt erst mal lesen und verstehen... :)

    [edit] Ich habe es jetzt so gelöst:

    Quellcode

    1. LoadPlugin("G:\Desktop\Progs\Videobearbeitung\MeGUI_0.3.5\tools\ffms\ffms2.dll")
    2. FFVideoSource("G:\Desktop\Dokumentation.mkv")
    3. bild = ImageReader("G:\Desktop\schwarz.jpg", 0, 250, last.Framerate, pixel_type="rgb32")
    4. __film = last
    5. __t0 = __film.trim(0, 1744)
    6. __t1 = __film.trim(1745, 1775).Overlay(bild, 0, 0)
    7. __t2 = __film.trim(1776, __film.framecount)
    8. __t0 ++ __t1 ++ __t2


    Danke nochmal Euch beiden!

    Hier können die Fenster wieder zugemacht werden!

    Gruß und schönen Abend noch

    MarioZockt72
    Ich bin kein Arsch, ich bin nur ehrlich...!

    Besuch' mich doch mal auf YouTube

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MarioZockt ()

  • RGB Konvertierung kannste eig. weglassen, das beschleunigt evtl die Codierung, wenn das nicht konvertiert wird.

    PNG verwenden. JPG ist ein verlustformat. Auch wenns 100% schwarz ist - lieber PNG nehmen. PNG ist auch schon in RGB.
    Die PNG wäre sogar kleiner geworden bei nur schwarz.

    Wo haste die MKV her. Dachte das wär mov ? oder haste mit MKVMerge in MKV umgemuxt? bitte kein re-encode xD
    Aktuelle Projekte/Videos




    Seit etlichen Monaten komplett veraltete Signatur, wie ihr sicherlich schon bemerkt habt. Habe mittlerweile mehr als 4 Projekte, weshalb die Signatur leider momentan gesprengt ist xD
    Notdürftig die Liste was aktuell läuft: Unreal | Complex DooM (LPT) | DooM 2016 | Need For Speed III: Hot Pursuit | Dirt Rally | Dirt 4 | WRC 7
  • MarioZockt schrieb:

    @Sagaras
    @De-M-oN

    Danke, danke, danke!

    Ich bin dann jetzt erst mal lesen und verstehen... :)

    [edit] Ich habe es jetzt so gelöst:

    Quellcode

    1. LoadPlugin("G:\Desktop\Progs\Videobearbeitung\MeGUI_0.3.5\tools\ffms\ffms2.dll")
    2. FFVideoSource("G:\Desktop\Dokumentation.mkv")
    3. bild = ImageReader("G:\Desktop\schwarz.jpg", 0, 250, last.Framerate, pixel_type="rgb32")
    4. __film = last
    5. __t0 = __film.trim(0, 1744)
    6. __t1 = __film.trim(1745, 1775).Overlay(bild, 0, 0)
    7. __t2 = __film.trim(1776, __film.framecount)
    8. __t0 ++ __t1 ++ __t2


    Danke nochmal Euch beiden!

    Hier können die Fenster wieder zugemacht werden!

    Gruß und schönen Abend noch

    MarioZockt72
    +
    Das Thema wurde "als erledigt markiert" und deshalb werde ich es nun schließen.
    Falls noch Rückfragen auftauchen, oder ich anderwertig zu früh geschlossen haben sollte, so genügt eine kleine PN des Threaderstellers an mich.


    #CLOSED