Videoausschnitt im laufenden Film vergrößern

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

    • Videoausschnitt im laufenden Film vergrößern

      Während dieses (für mich Motorradfahrer) schon viel zu langen Winters habe ich mir gerade eine Aufnahme aus dem Sommer angeguckt. Ich habe in dem Film zwei Kameras verwendet. Eine große Ansicht und einen kleinen Ausschnitt als Bild im bild in die untere Ecke gepackt.

      Mittlerweile habe ich drei Kameras (Hero 2, AS-200V, Gear 360). Eine vierte plane ich auch schon.

      Dabei kam mir nun die Idee, dass es eigentlich möglich sein müsste alle Kameras in gleiche große Abschnitte zu unterteilen. Ich habe dazu mal ein Bild gemacht (Bild 1).

      Der springende Punkt ist nun, dass man sich vielleicht gerne die ein oder andere Szene in Vollbild angucken will und die anderen Kameras ganz ausblendet oder extrem stark verkleinert. Ich habe dazu noch ein Bild gemacht (Bild 2)

      Ich stelle mir also ein Programm oder Schnitt vor, wo ich während des laufenden Films die gewünschte Kamera anklicke und diese mir dann als Vollbild dargestellt wird.Richtig episch würde das werden, wenn man beim Ausschnitt mit der 360°-Kamera dann auch noch den Blickwinkel ändern könnte, aber ich glaube das Mischen von normalen Kameras und 360°-Kameras ist momentan nicht möglich.

      Von der Vorgehensweise stelle ich mir das so vor, wie bei einem DVD-Menü mit Szeneauswahl. In den Fenstern sieht man oftmals Ausschnitte aus der jeweiligen Filmszene und kann die dann anklicken und der Film startet am entsprechenden Kapitel. In meinem Fall würde der komplette Film weiterlaufen nur eben dann im Vollbild.

      Ich hoffe ich konnte meine Idee und Wunsch gut genug beschreiben, dass es allgemein verständlich ist. Ist dieses Vorhaben möglich oder geht da momentan nichts. Ich denke schlussendlich muss es zum einen vom Videoschnittprogramm entsprechend aufbereitet sein und zum anderen muss der Player das Feature dann auch unterstützen. Von daher denke ich nicht, dass es momentan möglich ist, aber vielleicht wisst ihr ja mehr.
      Dateien
      • Bild 1.png

        (4,05 kB, 19 mal heruntergeladen, zuletzt: )
      • Bild 2.png

        (3,63 kB, 20 mal heruntergeladen, zuletzt: )
    • Bei Schnittprogrammen suchst du da meiner Meinung nach an der falschen Stelle. Sowas ist beispielsweise per Flash oder HTML machbar. Browser und Flashplayer unterstützen diese Interaktivität. Viele Präsentationsprogramme oder Programme im Bereich des E-Learnings bieten ähnliche Funktionen, möglicherweise auch VJ-Software.
    • Der Architekt schrieb:

      Von der Vorgehensweise stelle ich mir das so vor, wie bei einem DVD-Menü mit Szeneauswahl. In den Fenstern sieht man oftmals Ausschnitte aus der jeweiligen Filmszene und kann die dann anklicken und der Film startet am entsprechenden Kapitel.

      Das sind dann im Voraus für das Menü gerenderte Ausschnitte aus dem Film, keine interaktive Anzeige aus dem laufenden Programm. So etwas gibt es meines Wissens erst bei Blu-ray Discs, dass bei einer Menü-Einblendung der Hauptfilm in verkleinerter Form weiter läuft (also quasi umkehrt wie beim Pop-Up-Menü, wo dieses den weiterlaufenden Film teilweise überdeckt. Die mir bekannten Authoring-Tools (DVDA und Encore) bieten meines Wissens eine solche Interaktivität nicht (obwohl Encore bei BDs Pop-Up-Menüs unterstützt).

      Mit gewissen Einschränkungen ließe sich so etwas vielleicht durch verschiedene parallele Videostreams lösen, zwischen denen mit der "Blickwinkel" oder "Angle"-Taste auf der Player-Fernbedienung umgeschaltet werden kann. Ich wüsste aber jetzt kein Programm, dass so etwas im Hobby-Bereich unterstützt.

      Es gibt zwar NLEs die einen Mehrkameraschnitt unterstützen, aber mir wäre keine Schnittsoftware bekannt, die dies während der Wiedergabe inaktiv erlauben würde.

      Man müsste, wenn es sich überhaupt machen lässt, wohl wie Marco vorgeschlagen hat, sich bei anderen Software-Tools umsehen.
      Greetings,
      ro_max

      Grüne Kommentare sind als Mod, der Rest als User geschrieben.
    • »​Mit gewissen Einschränkungen ließe sich so etwas vielleicht durch verschiedene parallele Videostreams lösen, zwischen denen mit der "Blickwinkel" oder "Angle"-Taste auf der Player-Fernbedienung umgeschaltet werden kann. Ich wüsste aber jetzt kein Programm, dass so etwas im Hobby-Bereich unterstützt.«

      Das wäre als DVD mit dem DVD Architect machbar.
    • Nur bei DVD oder auch bei BD?

      Ich habe es selbst nie ausprobiert, weil mir die Bildqualität der einzelnen Streams zu sehr gelitten hätte, denn soweit ich weiß, muss die Gesamt-Bitrate aller Streams noch innerhalb der Spezifikation liegen und wenn man das auf 3 oder 4 Streams verteilt, dann bleibt pro Stream nicht mehr viel. ;)
      Greetings,
      ro_max

      Grüne Kommentare sind als Mod, der Rest als User geschrieben.
    • Hallo,
      ich habe es so noch nicht explizid ausprobiert, denke aber das es mit Edius 8.3 so mit dem Layouter gehen wird. Diverse Lehrvideos bei Youtube.

      Einfach die 30Tage Testversion runterladen und testen.

      gruß Peter
    • Danke für eure Antworten. Ich hätte noch erwähnen sollen, dass ich die Videos ohnehin nur am PC abspiele. Auf irgendwelche Gerätespezifikationen oder Codecs muss man also nicht achten. Das mit dem DVD-Menü war nur ein Beispiel, damit man es sich bildlich besser vorstellen kann. Wenn das von mir gewünschte mit BluRay-Software und Player funktioniert soll es mir recht sein.
    • Oben beschriebenes Multi-Angle, in dem mehrere Videostreams verwendet werden und dann beim Abspielen schaltbar sind, ist auch als Blue-ray-Disc (auch mit DVD Architect) umsetzbar. Und der VLC-Player sollte das rein Datei-basierend (ohne Scheibe) handhaben können. Aber du hast eben die Einschränkungen, dass nur noch sehr wenig Datenrate für die Videostreams übrig bleibt und das das nicht per Mausklick machbar sein wird.
    • Ich habe mal ein kleines Tool geschrieben, dass als Proof of Concept betrachtet werden kann. Leider kann ich nicht wirklich programmieren und habe für die paar Zeilen schon zwei Stunden gebracht und das auch nur hinbekommen, weil ich mittels Google die richtigen Befehle fand und ich auf die Windows Media Player API zugreifen konnte.

      Das Tool funktioniert so, dass man auf C:\ einen Ordner mit dem Namen "videos" anlegen muss und dort zwei Dateien reinkopiert, die dann "1.mp4" und "2.mp4" heißen müssen. Dann das Tool starten und auf den "Play"-Button drücken und beide Streams beginnen gleichzeitig. Man kann dann mit einen Doppelklick auf das Weise Element den jeweiligen Stream groß machen. (Eigentlich wollte ich, dass man einen Doppelklick auf das Video direkt macht und der Player ändert die Größe, aber während das Video läuft funktioniert das nicht. Der Media Player wechselt in einen echten Full Screen.

      Es wird auch noch deutlich mit welchen Problemen man zu kämpfen hat und an was alles gedacht werden muss bis der Player praktisch einsetzbar wäre. Vielleicht ist auch jemand bereit mir (gewaltige) Hilfestellung zu geben um einen solchen Player richtig und schön zu programmieren. Ich werde wohl nochmal eine GUI basteln mit all den Funktionen und Features, die man so als Minimum für eine brauchbare Lösung brauchen würde.

      [Edit] Aus Qualitätsgründen betrachte ich es als sinnvoll auf zwei Streams zu setzen, da wie weiter oben schon erwähnt wurde sich die Bitrate auf das gesamte Video aufteilt und für das einzelne nicht mehr viel übrig bleibt. Ich denke Festplattenspeicher ist heutzutage kein wirkliches Kriterium mehr und wir Hobbyfilmer haben ohnehin immer einen großen Platzbedarf. Schwieriger wird es da schon, dass beide Streams ruckelfrei wiedergegeben werden und synchron starten und ablaufen. Meine virtuelle Maschine hat das nicht gepackt, so dass ich den Player auf meinem Hauptrechner starten musste. Da klappt es. Ob das dann bei drei oder gar vier Streams immernoch hinhaut dürfte spannend sein.[/Edit]

      Anbei den Quellcode falls wer keine fremden Dateien ausführen möchte. Die entsprechenden Elemente hat man sich ja im Visual Studio schnell zusammengeklickt.

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      using System.Windows.Forms;

      namespace MulticamView_PoC
      {
      public partial class Form1 : Form
      {
      public Form1()
      {
      InitializeComponent();
      }

      private void axWindowsMediaPlayer1_DoubleClickEvent(object sender, AxWMPLib._WMPOCXEvents_DoubleClickEvent e)
      {

      axWindowsMediaPlayer1.Size = new Size(924, 380);
      axWindowsMediaPlayer2.Size = new Size(200, 100);

      axWindowsMediaPlayer1.Location = new Point(0, 0);
      axWindowsMediaPlayer2.Location = new Point(0, 380);

      axWindowsMediaPlayer2.settings.volume = 0;
      axWindowsMediaPlayer1.settings.volume = 100;
      }

      private void axWindowsMediaPlayer2_DoubleClickEvent(object sender, AxWMPLib._WMPOCXEvents_DoubleClickEvent e)
      {
      axWindowsMediaPlayer2.Size = new Size(924, 380);
      axWindowsMediaPlayer1.Size = new Size(200, 100);

      axWindowsMediaPlayer2.Location = new Point(0, 0);
      axWindowsMediaPlayer1.Location = new Point(0, 380);

      axWindowsMediaPlayer1.settings.volume = 0;
      axWindowsMediaPlayer2.settings.volume = 100;
      }

      private void cmdPlay_Click(object sender, EventArgs e)
      {
      axWindowsMediaPlayer1.URL = @"C:\videos\1.mp4";
      axWindowsMediaPlayer1.Ctlcontrols.play();
      axWindowsMediaPlayer2.URL = @"C:\videos\2.mp4";
      axWindowsMediaPlayer2.Ctlcontrols.play();
      cmdPlay.Visible = false;

      }
      }
      }

      Dateien
    • Ich habe einen weiteren PoC programmiert. Ist etwas besser, aber noch lange nicht perfekt. Es gibt einfach sehr viele Macken die ich nicht beheben kann, aber ich glaube ich bin auf dem richtigen Weg.

      Changelog:
      - Videos können selbst gewählt werden und müssen nicht mehr in einen speziellen Ordner und auch nicht mehr umbenannt werden
      - Audioquelle wählbar
      - Videos können synchronisiert werden
      - Etwas schönere Darstellung

      Was das Synchronisieren angeht hatte ich es erst über das Ereignis "PositionChange" versucht, aber dann stürzt das Programm ab. Daher die Button-Lösung.

      Anbei wieder der Quelltext und der Anhang
      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      using System.Windows.Forms;
      using System.IO;
      using System.Text.RegularExpressions;

      namespace Multicam_View_PoC2
      {
      public partial class Form1 : Form
      {
      public Form1()
      {
      InitializeComponent();
      }

      private void dateiÖffnenKamera1ToolStripMenuItem_Click(object sender, EventArgs e)
      {
      try
      {
      OpenFileDialog ofd = new OpenFileDialog();
      ofd.Filter = "Videodateien (*.mp4)|*.mp4|Alle Dateien (*.*)|*.*";
      if (ofd.ShowDialog() == DialogResult.OK)
      {
      string file = ofd.FileName;
      axWindowsMediaPlayer1.URL = ofd.FileName;
      axWindowsMediaPlayer1.Ctlcontrols.stop();
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message);
      }
      }

      private void dateiÖffnenKamera2ToolStripMenuItem_Click(object sender, EventArgs e)
      {
      try
      {
      OpenFileDialog ofd = new OpenFileDialog();
      ofd.Filter = "Videodateien (*.mp4)|*.mp4|Alle Dateien (*.*)|*.*";
      if (ofd.ShowDialog() == DialogResult.OK)
      {
      string file = ofd.FileName;
      axWindowsMediaPlayer2.URL = ofd.FileName;
      axWindowsMediaPlayer2.Ctlcontrols.stop();
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message);
      }
      }

      private void playlistÖffnenToolStripMenuItem_Click(object sender, EventArgs e)
      {

      }

      private void radioButton1_CheckedChanged(object sender, EventArgs e)
      {
      axWindowsMediaPlayer1.settings.volume = 100;
      axWindowsMediaPlayer2.settings.volume = 0;
      }

      private void radioButton2_CheckedChanged(object sender, EventArgs e)
      {
      axWindowsMediaPlayer1.settings.volume = 0;
      axWindowsMediaPlayer2.settings.volume = 100;
      }

      private void radioButton3_CheckedChanged(object sender, EventArgs e)
      {
      axWindowsMediaPlayer1.settings.volume = 100;
      axWindowsMediaPlayer2.settings.volume = 100;
      }

      private void cmdPlay_Click(object sender, EventArgs e)
      {
      axWindowsMediaPlayer1.Ctlcontrols.play();
      axWindowsMediaPlayer2.Ctlcontrols.play();

      }

      private void cmdSync1_Click(object sender, EventArgs e)
      {
      axWindowsMediaPlayer2.Ctlcontrols.currentPosition = axWindowsMediaPlayer1.Ctlcontrols.currentPosition;
      }

      private void cmdSync2_Click(object sender, EventArgs e)
      {
      axWindowsMediaPlayer1.Ctlcontrols.currentPosition = axWindowsMediaPlayer2.Ctlcontrols.currentPosition;
      }

      private void axWindowsMediaPlayer1_DoubleClickEvent(object sender, AxWMPLib._WMPOCXEvents_DoubleClickEvent e)
      {
      axWindowsMediaPlayer1.Size = new Size(996, 560);
      axWindowsMediaPlayer2.Size = new Size(284, 160);

      axWindowsMediaPlayer1.Location = new Point(0, 24);
      axWindowsMediaPlayer2.Location = new Point(121, 600);

      axWindowsMediaPlayer1.settings.volume = 100;
      axWindowsMediaPlayer2.settings.volume = 0;
      radioButton1.Checked = true;
      }

      private void axWindowsMediaPlayer2_DoubleClickEvent(object sender, AxWMPLib._WMPOCXEvents_DoubleClickEvent e)
      {
      axWindowsMediaPlayer2.Size = new Size(996, 560);
      axWindowsMediaPlayer1.Size = new Size(284, 160);

      axWindowsMediaPlayer2.Location = new Point(0, 24);
      axWindowsMediaPlayer1.Location = new Point(121, 600);

      axWindowsMediaPlayer1.settings.volume = 0;
      axWindowsMediaPlayer2.settings.volume = 100;
      radioButton2.Checked = true;
      }

      private void cmdReset_Click(object sender, EventArgs e)
      {
      axWindowsMediaPlayer1.Size = new Size(640, 360);
      axWindowsMediaPlayer2.Size = new Size(640, 360);

      axWindowsMediaPlayer1.Location = new Point(0, 24);
      axWindowsMediaPlayer2.Location = new Point(645, 24);

      axWindowsMediaPlayer1.settings.volume = 100;
      axWindowsMediaPlayer2.settings.volume = 100;
      radioButton3.Checked = true;
      }
      }
      }

      Dateien
      • Multicam View PoC2.zip

        (285,91 kB, 5 mal heruntergeladen, zuletzt: )
      • PoC2.png

        (57,24 kB, 9 mal heruntergeladen, zuletzt: )
    • Wäre nicht eine Lösung genial, die zum Zeitpunkt des Klicks den aktuellen Timecode des laufenden Vollbildvideos abfragt und das kommende Vollbildvideo ab diesem Timecode startet? So würde vermieden werden, dass mehrere Videostreams gleichzeitig laufen müssen.
    • Ich habe die PoC 2 nochmal nachgebessert und es ist ein benutzbares Programm daraus geworden. Es ist soweit ich feststellen konnte bugfrei, aber natürlich noch ausbaufähig. Ich denke das Ergebnis ist trotzdem vorzeigbar und dafür, dass ich eigentlich nur ein Proof of Concept machen wollte ist es am Ende richtig gut geworden, besonders wenn man noch bedenkt, dass mir die Programmierkunst und das Verständnis dahinter nicht wirklich in die Wiege gelegt wurde. Ein großer Dank geht an das Forum ngb.to und insbesondere an den Benutzer KaPiTN, der mir die nötige Hilfestellung gab.

      Ich hätte gerne wieder den Source Code angehängt, aber dann sprenge ich das Zeichenlimit von 10.000. Ich packe euch aber den kompletten Projektordner bei. Für unerfahrene Anwender, welche das Tool einfach mal testen wollen: Die Anwendungsdatei liegt im Ordner "Multicam View PoC2\Multicam View PoC2\bin\Debug"

      [Features / Changelog]
      - Multicamdatei kann erstellt und geladen werden (Damit muss man nicht mehr jedes einzelne Video in die Player laden)
      - Player synchronisieren sich jetzt gegenseitig an den Sprungmarken
      - Echtes Bind in Bild
      - Player-Steuerelemente des verkleinerten Players werden ausgeblendet
      - Bild in Bild kann kann eine der vier Ecken zugewiesen werden
      - Freie Wahl der Audiospur
      - Optimierte Playergröße für 16:9

      @Wolfgang: Ich weis nicht, wie du es hier halten willst. Gerne hätte ich die Datei an meinen ersten Post angehängt, kann diesen aber nicht mehr bearbeiten. Ich denke die alten Versionen / Sources und Beiträge hier kann man auch löschen um nicht unnötig veralteten und verbuggten Kram bereit zu stellen.
      Dateien
    • Hallo
      also ich ganz ehrlich, ich kann damit gar nichts anfangen, aber das liegt ausschließlich an mir,

      Nachdem runterladen und entzippen, und nun.....?

      Gruß Peter
    • Für Endanwender ist folgende Datei interessant: "Multicam View PoC2\Multicam View PoC2\bin\Debug\Multicam View PoC2.exe"

      Diese Datei kannst du ausführen. Den Ordner "Debug" kannst du du hinkopieren wo du willst und auch umbenennen, aber die einzelnen Dateien in dem Ordner müssen zusammen bleiben. In der nächsten Version bastel ich noch ein (schönes) Icon.