Facecams in Let's Plays einbauen

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

    • Eigentlich würde ich am liebsten gar nix schreiben.

      Aber ich erkläre mal mit einfachen Worten das was du im Video über 2 Minuten erklärst:

      2 Videos auf eine einzelne seperate Spur ziehen und jeweils die Facecam Spur positionieren.

      Kann jede NLE. Und ich würde auch sagen das es jeder noch zu Unwissende Mensch es schaffen würde 2 Videospuren zu nutzen durch blankes Drag&Drop Verfahren ^^

      Das ganze als Tutorial noch zu verfassen... weiß nicht ob das vllt ne gute Idee war. Hätteste noch so um die 100 andere kleine Tricks gezeigt die man mit dem Programm noch machen kann, so hätteste auf jedenfall ein Tutorial machen können nur für diese NLE die du nutzt.

      Aber so, ist es einfach zu wenig und überflüssig. Sorry. Aber das war zu wenig um es nicht selbst herausfinden zu können.

      Wäre es basierend auf eine Skriptsprache wie AVISynth, dann wäre ein Tutorial für sowas interessanter, weil da muss man schon mehr können als nur Drag&Drop.
    • Ich steuer mal einfach die Funktion für AVISynth bei, die ich für Webcam-Overlays nutze. Die Lädt einfach das Webcam-Video, verschiebt es um die angegebenen Frames, sodass alles synchron ist und fügt nen Webcam-Rahmen ein. Zu guter Letzt wird es halt in das Video eingefügt.

      Quellcode

      1. ​Function AddWebcam(clip clip0, string filename, int frames) {
      2. # Laden der Webcam-Source; Resize und ChangeFPS sind optional
      3. #
      4. w0 = AVISource(filename, audio=false).Spline16Resize(webcam_breite, webcam_hoehe).ChangeFPS(fps)
      5. # Synchronisieren des Videos mit dem Hauptclip: Webcam wird um "frames" Frames verkürzt.
      6. # Bei negativem "frames" wird ein BlankClip eingefügt
      7. #
      8. (frames > 0) ? Eval("""
      9. w0 = Trim(w0, frames, w0.frameCount()-1)
      10. """) : Eval("""
      11. w0 = BlankClip(w0, Abs(frames)).KillAudio() ++ w0
      12. """)
      13. # Einfügen des Rahmens und alles zusammenführen
      14. #
      15. bg0 = ImageSource("D:\Videos\Aufnahmen\assets\bg_wc.png")
      16. bga = ImageSource("D:\Videos\Aufnahmen\assets\bg_wc.png", pixel_type="RGB32").ShowAlpha(pixel_type="RGB32")
      17. clip0 = Overlay(clip0, bg0, 20, 20, bga)
      18. clip0 = Overlay(clip0, w0, 20, 20, output="YV12")
      19. return clip0
      20. }
      Alles anzeigen
      "Wenn du ein Einhorn bist, aber nicht an Fabelwesen glaubst, ist das problematisch"
    • KurzerBrendas schrieb:

      Ich steuer mal einfach die Funktion für AVISynth bei, die ich für Webcam-Overlays nutze. Die Lädt einfach das Webcam-Video, verschiebt es um die angegebenen Frames, sodass alles synchron ist und fügt nen Webcam-Rahmen ein. Zu guter Letzt wird es halt in das Video eingefügt.

      2 Mängel würde ich deinen Skript geben.
      1. Die Variablen webcam_breite, webcam_hoehe und fps müssen laut deinen Skript global deklariert werden
      2. Ich hab mal ein Test gemacht, wo die Webcamaufnahme kürzer ist als die Aufnahme wo sie drauf kommen soll.

        Aufgerufen hab ich es so:

        AddWebcam(v, "Video.avi", 2500)

        Die Webcam sollte 2500 Frames vorne weg nehmen. Manko an der Sache aber: Am Ende bleibt da wo die Webcam Aufnahme ist bis zum Schluss des Grundvideos ein schwarzes leeres Webcam Kästchen.
      Also durch Punkt 1 ist das ganze nicht mehr Flexibel wenn du das so machst. Ich könnte ja jetzt nicht wenn ich meine Webcam eine andere Größe geben möchte irgendwann innerhalb der Aufnahme es ändern, da die Variablen ja innerhalb in der Funktion Global deklariert werden müssen. Keine schöne Lösung. Für fps ist das vllt noch gut oder für die Grundzielgröße, aber niemals für Objekte die man auf dieser Grundfläche zeichnen möchte. Diese sollten Flexibel bleiben.

      Bei Punkt 2 ist es eher ein Schönheitsfehler. Auch hätte ich es vllt nicht so gelöst wie du jetzt, weil praktisch gesehen weiß AVISynth alle Infos zu den geladenen Datein. Bedeutet das die komplette Framelänge abgefragt werden kann. Das heißt das du perfekt schneiden kannst indem du beide Videos in betracht ziehst. So hätteste z.B. auch diesen Schöhnheitsfehler vermieden den ich aufgelistet habe.

      Tipp: Statte dein Overlay wo du die Webcam einfügst mit ApplyRange aus.

      Das ganze sieht dann in der letzten Zeile so aus:

      clip0 = ApplyRange(clip0, 0, w0.framecount, "Overlay", w0, 20, 20).ConvertToYV12()

      Dann wird Overlay nur so lange angewendet, wie die Webcam an Frames besitzt. Danach ist die Webcam weg, sollte das Grundvideo weitergehen.
    • Anzeige
      @Sagaras

      Zu 1.:
      Du hast natürlich völlig Recht, globale Variablen gehören nicht in schönen Code rein. Hab ich wohl beim zusammenschustern der Funktion nicht so drauf geachtet :D
      Wäre es zur generellen Flexibilität dann nicht besser, in der Funktion die Webcam noch gar nicht zu resizen und über das Grundvideo zu legen sondern nur jenes zu laden, schneiden, den Rahmen rumzusetzen und dann als separaten Clip zurückzuliefern? Dann kann man damit später alles machen was man möchte. Oder wie hattest du das gemeint?

      Zu 2.:
      Ich hatte das bis jetzt nur verwendet um die Asynchronität, die zwischen dem Einschalten der Webcam und der Aufnahme des Games o.ä. entsteht, auszugleichen. Daher ist mir der Fehler auch noch nicht aufgefallen. Wenn man davon ausgeht, dass Anfang und Ende sowieso rausgeschnitten werden, sollte das auch kein Problem darstellen. Nichtsdestotrotz ist es natürlich deutlich besser, das Ganze mit ApplyRange umzusetzen.
      "Wenn du ein Einhorn bist, aber nicht an Fabelwesen glaubst, ist das problematisch"
    • Hey danke für dein Feedback.

      Natürlich kann man vieles selbst herausfinden, aber hast du schon mal auf Gutefrage.net geschaut? Da werden auch Dinge gefraft, die man mit Google ganz einfach herausfinden könnte. Nur googeln die Leute es nicht, weil sie zu faul sind und alles einfach erklärt bekommen wollen! Und genau für diese Leute ist das Video gedacht und nicht für Superprofis, wie du sicherlich einer bist, @Sagaras ;)

      Außerdem habe ich das schon bewusst so kurz und fokussiert gestaltet, weil ich mir vorstellen kann, dass sich Laien drüber freuen, wenn sie mal ganz einfach gezeigt bekommen, mit welchem Programm und welcher Funktion sie ganz schnell eine Facecam in ihre Videos reinballern können. Ganz ohne Schnick Schnack! Der Titel sagt ja nicht mehr und nicht weniger. Ich will ja keine Profi-Cutter aus den Leuten machen.

      Insofern finde ich schon, dass dieses Tutorial seine Daseinsberechtigung hat. Und auch wenn ich deine elaborierte Meinung nicht in Frage stellen möchte, glaube ich nicht, dass du das Recht hast, zu sagen, welche Videos überflüssig sind und welche nicht.

      Aber wie gesagt: Danke fürs Feedback.
    • CocheezeLP schrieb:

      Natürlich kann man vieles selbst herausfinden, aber hast du schon mal auf Gutefrage.net geschaut? Da werden auch Dinge gefraft, die man mit Google ganz einfach herausfinden könnte. Nur googeln die Leute es nicht, weil sie zu faul sind und alles einfach erklärt bekommen wollen! Und genau für diese Leute ist das Video gedacht und nicht für Superprofis, wie du sicherlich einer bist, @Sagaras

      Jeder Mensch hätte das von alleine herrausbekommen, weil das eine einfache Drag&Drop Sache ist. Die, die es nicht herrausgefunden hätten, könnten nur Kinder sein unter 14 Jahren oder Leute die denken das ein PC das gleiche ist wie eine Konsole ^^

      Außerdem... Nobody ist Perfect. Selbst ich mache Fehler. Wäre ja schlimm wenn ich keine machen würde ^^ Aber ich finde das dein Tut zu kurz und mit zu wenig ausgestattet hast. Ich meine... du erklärst wirklich nur eine Drag&Drop Geschichte. 2 oder 3 Klicks die man mit der Maus macht. Das ist einfach viel zu wenig. Hättest es weiter ausbauen sollen. z.B. das du das Facecambild animiert hättest, das sich von Links nach Rechts bewegt. Oder hättest noch erklärt wie man einem Facecamvideo einen Alphakanal gibt um bestimmte Farben darauf transparent zu machen. Das wäre interessanter zusätzlich noch gewesen und hätte nach mehr ausgesehen.

      Und wenn sich dein Video ein "Superprofi" anschaut, dann fragt er sich wozu das gut sein soll. ^^
      Weil das halt eine Geschichte ist die selbst der letzte Hinterweltler herrausbekommen hätte ^^ Ist wirklich so. Die, die es nicht herrausbekommen hätten, sind wirklich meist Menschen die denken das ein PC das gleiche ist wie eine Konsole. Es wird nix hinterfragt bei diesen Leuten, es muss nur laufen bei denen. Aber dann denke ich sind diese Leute falsch bei Let's Play's. Weil dieses Hobby den Kernpunkt nicht nur beim Spielen hat und Kommentieren, sondern das A und O auch bei der Videobearbeitung liegt. Und gerade das wollen viele nicht verstehen oder sie glauben bereits das sie es verstehen. Aus der Tatsache herraus zu zeigen das sie wer sind. Und dann kommen se irgendwann ins Forum und fragen Sachen wie: "Facecamaufnahme sieht nicht aus wie ich aufgenommen habe" oder "Warum ist meine Facecamaufnahme so asynchron zum Spiel"

      Sachen halt wo FPS Konvertiert werden und zu Ghosting Effekten führen oder FPS die zum Spiel einfach nicht passen und von der NLE korrigiert werden um anzugleichen.

      Ein einfaches hinzufügen ohne zu wissen wie die Quelldatein sind, kann durchaus nach hinten losgehen. Sowas sollte man erwähnen dann.

      KurzerBrendas schrieb:

      Zu 1.:
      Du hast natürlich völlig Recht, globale Variablen gehören nicht in schönen Code rein. Hab ich wohl beim zusammenschustern der Funktion nicht so drauf geachtet
      Wäre es zur generellen Flexibilität dann nicht besser, in der Funktion die Webcam noch gar nicht zu resizen und über das Grundvideo zu legen sondern nur jenes zu laden, schneiden, den Rahmen rumzusetzen und dann als separaten Clip zurückzuliefern? Dann kann man damit später alles machen was man möchte. Oder wie hattest du das gemeint?

      Deine Function einfach mal abändern damit diese Flexiebler wird. Die FPS Global zu setzen ist schon ganz ok soweit, aber du solltest wissen das egal welches Video du mit Overlay auf die Grundfläche draufzeichnest, die FPS der Grundfläche genommen wird.

      Beispiel:

      v1 = 30FPS
      v2 = 25FPS

      v = Overlay(v1,v2)

      Hier würde v gleich 30 FPS haben. v2 wird automatisch gechanged, da es die FPS des Videos von v1 bekommt.

      So könnteste dir ein Filter sparen für die FPS und müsstest diese nicht mal Global deklarieren.

      Breite und Höhe hätte ich der Funktion zugeordnet als weiteres Argument, so das man selbst bestimmten kann wie groß das sein soll.

      Damit hätteste keine Globalen Variablen mehr und alles wäre Flexiebler schon ohne auf Statische Werte zurückgreifen zu müssen die vorher mit Global deklariert wurden.

      KurzerBrendas schrieb:

      Zu 2.:
      Ich hatte das bis jetzt nur verwendet um die Asynchronität, die zwischen dem Einschalten der Webcam und der Aufnahme des Games o.ä. entsteht, auszugleichen. Daher ist mir der Fehler auch noch nicht aufgefallen. Wenn man davon ausgeht, dass Anfang und Ende sowieso rausgeschnitten werden, sollte das auch kein Problem darstellen. Nichtsdestotrotz ist es natürlich deutlich besser, das Ganze mit ApplyRange umzusetzen.

      Ich gebe dir mal ein paar Ideen mit für das Problem was du hast, weil es eigentlich gesehen nur ein Verschieben ist der Spur:

      Wenn Webcamvideo größer ist als Grundvideo:
      v1 = Grundvideo
      v2 = Webcam <- Videos am beisten schon beim Laden resizen und versuchen anzugleichen
      Anfangsframe = 10 <- Das ist bei dir int frame

      Quellcode

      1. v2 = v2.Trim(Anfangsframe, v1.framecount)
      2. Overlay(v1, v2, v2.width - 20, v2.height - 20, opacity = 0.7)


      Damit würde die Facecam am Anfang etwas geschnitten werden und nur so lang sein wie die Grundaufnahme

      Wenn die Webcamaufnahme allerdings zu kurz ist, weil man vllt mehrere einfügen will, dann wäre es gut es mit ApplyRange auszustatten.

      Quellcode

      1. v2 = v2.Trim(Anfangsframe, v1.framecount)
      2. ApplyRange(v1, 0, v2.framecount, "Overlay", v2, v2.width - 20, v2.height - 20)


      Mit dem letzten hier, hätteste zwei Fliegen mit einer Klappe. Wenn ein Video nur 50 Frames z.B. hat und ich sage Trim(0, 500) oder ähnliches, kann er ja nicht da schneiden wo nix ist. In dem Sinne hat das Video weiterhin nur 50 Frames. Und das geschieht in der ersten Codezeile hier schon. Bei ApplyRange verwende ich nur noch das was mir gegeben ist. Wenn v2 nun länger sein sollte am Ende, wird was weggeschnitten damit es zum Grundvideo gleich ist und wenn es zu kurz ist, wird der Fehler nicht angezeigt mit einer schwarzen Fläche dank Apply Range.
      So ist man in der Lage die Webcamaufnahme nach links hin zu verschieben. Wie eine Videospur in einer NLE halt.

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

    • J

      Sagaras schrieb:

      CocheezeLP schrieb:

      Und wenn sich dein Video ein "Superprofi" anschaut, dann fragt er sich wozu das gut sein soll. ^^
      Weil das halt eine Geschichte ist die selbst der letzte Hinterweltler herrausbekommen hätte ^^ Ist wirklich so. Die, die es nicht herrausbekommen hätten, sind wirklich meist Menschen die denken das ein PC das gleiche ist wie eine Konsole. Es wird nix hinterfragt bei diesen Leuten, es muss nur laufen bei denen. Aber dann denke ich sind diese Leute falsch bei Let's Play's. Weil dieses Hobby den Kernpunkt nicht nur beim Spielen hat und Kommentieren, sondern das A und O auch bei der Videobearbeitung liegt. Und gerade das wollen viele nicht verstehen oder sie glauben bereits das sie es verstehen. Aus der Tatsache herraus zu zeigen das sie wer sind. Und dann kommen se irgendwann ins Forum und fragen Sachen wie: "Facecamaufnahme sieht nicht aus wie ich aufgenommen habe" oder "Warum ist meine Facecamaufnahme so asynchron zum Spiel"


      Aber genau das ist ja der Punkt! Du denkst halt: Wer zu blöd ist zum Cutten, der darf kein Let's Play machen!
      Und ich denke eben: Wer es nicht kann, soll es halt ruhig trotzdem probieren. Mein Clip soll in wenigen Minuten die Grundlagen zeigen, weil ich selbst manchmal keinen Bock habe, mir 10 Minuten das Gedöns drum herum anzusehen!

      Das Ironische an der ganzen ist: Ich find Facecams sogar eher nervig und würde nicht mal eine benutzen :D

      Naja...jedenfalls tut es mir leid, wenn ich deinen sensiblen Geschmack in Sachen Videoschnitt beleidigt habe. Demnächst schreibe ich in die Beschreibung "Von einem Hinterwäldler für Hinterwäldler"
    • Wenn Blödheit und dieses 0 Bock haben zusammentrifft, dann hilft noch nicht mal dieses Video von dir :D

      Die Sache ist doch die: Videos wollen se alle machen, weil die meisten irgendwelche Leute nacheifern wollen. Aber sich mit der Sache mal zu beschäftigen und zu probieren machen immer weniger hab ich das Gefühl.

      Man gibt doch nicht zig Euronen aus für ein Programm, wo man selbst nicht mal rumprobiert. Ich meine... man kann doch nix kaputt machen mit nem Videobearbeitungsprogramm.

      Statt aber selbst zu probieren, brauchen immer mehr Leute irgendwelche Tutorials.

      Also meiner kleinen 4 jährigen Cousine würde ich dein Tutorial empfehlen. Aber sonst... ja. Ich sag ja nicht das es schlecht ist, es ist einfach zu wenig. Zu wenig in dem Sinne das man selbst drauf kommen kann.

      Weiß nicht, wenn man mehrere Videospuren hat, dann sollte doch klar sein das die übereinanderliegen dann, oder nicht? Währe die logischste Schlussfolgerung nur ^^

      Und kein Mensch ist dumm, höstens zu faul, zu bequem und zu unbeholfen. Aber niemals dumm. Jedem Hinterwälter könnte ich AVISynth beibringen, wenn er es will. Wollen aber viele nicht, aus bequemlichkeit herraus schon.

      Naja, jedem das seine.

      Vor allem... du findest Facecams nervig, machst aber extra ein Tutorial darüber? Warum? ^^ Macht es Sinn für dich oder anderen, wenn du nicht weißt was man da noch machen kann mit dieser Möglichkeit? ^^

      Und nein, du hast hier keinen Beleidigt und ich hege auch kein Groll gegen das Video an sich. Ich fands halt einfach zu mager ausgefallen und man hätte mehr reinpacken können. ^^

      Ich mag auch keine Facecams, aber die Funktion Bild in Bild ist ja nicht nur für Facecams, sondern man kann nebenbei auch andere Sachen mit einblenden lassen. Statische Bilder, Verziehrte Rahmen usw.

      Die Materie kann man immer weiter ausbauen, wenn man es verstanden hat. Aber wie gesagt... nur Drag&Drop... ist zu wenig. Das bekommen 4 jährige auch noch hin, wenn man es ihnen zeigt.
      Dein Puplikum für dieses Tut, sollte doch aber schon die 15+ jährigen ansprechen, oder?

      Ich meine, dann hättest du noch zusätzlich zeigen müssen wie man das Prog installiert und richtig startet. Weil wenn User nicht mal Spuren mit Videos per Drag&Drop füllen können, dann werden se sicher nicht mal das Programm installiert bekommen ^^

      Ich finds desshalb etwas Fail das Tutorial nur diese eine Sache da zu zeigen. Hätteste dich damit beschäftigt, hätteste noch mehr zeigen können was das angeht ^^ Garantiert.
    • Es ist ja nicht so, dass ich mich nicht damit beschäftigt habe. Ich habe einfach nur gesehen, dass viele Leute danach fragen, wie man Facecams einfügt und teilweise noch nicht mal wissen, was für ein Prog sie dazu brauchen. Dann habe ich gesehen, dass die meisten Videos dazu eher so 5-10 Minuten dauern und viel drum herum gelabert wird. Was dir ja scheinbar gefällt, mir aber nicht!

      Wenn ich ein Tutorial suche, wie man Facecams einbaut, will ich kein Tutorial, wie man außerdem die Funktion noch für Splitscreens nutzt oder wie man den Schlüpfer der Oma wäscht während das Video rendert...was man mit der Funktion und den einzelnen Spuren noch machen kann, kann dann ja jeder selbst ausprobieren, oder ein anderes Tutorial dazu suche :D

      Dass es dir nicht weiter hilft, ist ja ok. Aber anderen hilft es vielleicht. Und wenn nicht ist ja nicht dein Webspace der dafür vergeutet wurde ;) Deine Kritik nehme ich mir jedenfalls an. Vielleicht mache ich mal ein ausführlicheres Tutorial, was dir dann sicher trotzdem nicht gefallen wird :P
    • cojahn schrieb:

      Sagaras schrieb:

      Oder hättest noch erklärt wie man einem Facecamvideo einen Alphakanal gibt um bestimmte Farben darauf transparent zu machen. Das wäre interessanter zusätzlich noch gewesen und hätte nach mehr ausgesehen.

      DAS würde mich zB sehr interessieren ;)


      Ich benutze OBS was nicht nur fürs Streamen gut ist sondern seit neustem auch eine "nur aufnahme" funktion hat ;) wenn ihr wollt mach ich dazu ein mini tutorial :)
      Vielen dank an alle Abbos, Follows und views :)

      YouTube: youtube.com/kuchnmasl
      Twitch: www.twitch.tv/kuchnmasl