Dieses Wochenende hatte ich mir ein kleines Projekt vorgenommen. Endlich hatte ich mal Zeit meine 360 Grad Videos aus meinem letzten Urlaub zu sichten und zu einem Film zusammen zu schneiden. Da ich bei uns im Team von mobfish für die Software-Entwicklung zuständig bin, besitze ich keine Softwarelizenz von Premiere oder was die Kollegen sonst so zum Videoschneiden verwenden.
Mein Mac verfügt aber über das kostenlose Werkzeug iMovie von Apple. Es wäre doch gelacht, wenn ich damit nicht meinen Film geschnitten bekomme. Wie gut das am Ende funktioniert hat und welche Probleme ich lösen musste, darum soll es in diesem Beitrag gehen.
360 Grad Video schneiden
360 Grad Videos sind ganz normale Videos, mit irgendeiner Art von 360° Projektion (Verzerrung). Davon gibt es inzwischen einige. Die meisten Kameras exportieren am Ende eine equirectangulare Projektion, die auf die Oberfläche einer Kugel projiziert werden kann.
Weniger technisch gesprochen heißt das, wir können die Videos in iMovie genauso schneiden wie unsere 2D Filme. Zu beachten ist jedoch, dass nicht alle Filter und Animationen gut aussehen.
Damit das 360 Video am Ende funktioniert, muss es vollständig zu sehen sein. Es darf nirgendwo etwas abgeschnitten oder hinzugefügt werden. Damit fallen fancy Animationen wie der Ken Burns Effekt oder irgendwelche 3D Übergänge weg. Alle anderen Übergänge (Überblenden, Gleiten,…) können aber weiterhin eingesetzt werden.
Und so habe ich erstmal meinen Film erstellt, mit Übergängen versehen und Hintergrundmusik eingefügt. Beim ersten Export dann der Schreck: iMovie hat Teile meines Videos entfernt. Laut iMovie Dokumentation, sind die Projekteinstellungen automatisch so gewählt, wie das erste Video das man in das Projekt zieht. Das ist aber bei meinen Videos nicht der Fall.
Mein Ausgangsvideo hatte eine Auflösung von 4096×2048 und iMovie macht daraus ein Video mit 3840×2160. Da die beiden Formate nicht das selbe Verhältnis haben, hat iMovie einfach einen Teil rausgeschnitten, was wie oben erwähnt ein NoGo ist.
Das Problem mit der Auflösung
Langes Googlen kurzer Sinn, am Ende habe ich keinen Weg gefunden, iMovie beizubringen, meine Auflösung zu verwenden. Die Forenbeiträge haben mich allesamt nur darauf hingewiesen, dass ich ein Amateurtool verwende und für so etwas besser Premiere oder Final Cut verwenden sollte. Will ich aber nicht, die kosten Geld.
Was nun? Das iMovie etwas rausschneidet ist doof, dann besser was einfügen, dass ich später wieder rausschneiden kann. Gesagt getan. Ich habe meine Videosequenzen anschließend so angepasst, dass sie mit voller Breite verwendet werden. Dadurch entsteht oben und unten ein Rand.
Soweit so gut. Jetzt habe ich ein Video, bei dem zwar alles drauf ist, oben und unten aber einen hässlichen Rand zeigen. In einem 360° Videoplayer betrachtet entsteht so unten und oben ein hässliches Loch und das Video ist ungünstig verzerrt.
Wie schneide ich nun das Video zurecht? Die Antwort: FFMPEG!
ffmpeg ist ein Kommandozeilentool, mit dem man Videos bearbeiten kann. Es ist kostenlos und war mir schon in einigen Projekten eine Hilfe. Unter anderem kann man damit sogar verschiedene Videoformat umkonvertieren oder zwischen den 360° Videoprojektionstypen wechseln. Aber das ist ein anderes Thema.
FFmpeg lässt sich mit Hilfe von Homebrew fix installieren: https://sites.duke.edu/ddmc/2013/12/30/install-ffmpeg-on-a-mac/
Auch die Befehle zum Zuschneiden von Videos mit Hilfe von ffmpeg waren fix gefunden: https://video.stackexchange.com/questions/4563/how-can-i-crop-a-video-with-ffmpeg
Video zuschneiden mit ffmpeg
Da ich meine Videos mit einer Gear360 gemacht habe, weiß ich das mein Ausgangsmaterial eine Auflösung von 4096×2048 hat. Eigentlich sollte iMovie das auch für das Ausgangsformat übernehmen, es kommt allerdings eine Auflösung von 3840×2160 raus. Beachtet man, dass das Verhältnis meines 360° Videos eigentlich 2:1 ist, müsste das Video eine Auflösung von 3840x 1920 haben (3840/2). Der Rand besteht also aus 120 Pixeln oben und unten. Daraus ergibt sich folgender Befehl in ffmpeg:
ffmpeg -i video.mp4 -filter:v "crop=3840:1920:0:120" croped.mp4
Mit dem Parameter -i übergebe ich den Dateinamen meiner Ursprungsdatei, -filter:v wählt einen Filter aus. In meinem Fall den Crop (Zuschneiden)-Filter. Der Filter braucht vier Werte, die mit Doppelpunkt getrennt werden.
BREITE:HÖHE:X:Y
Das wars! Es ist zwar ein umständlicher Zwischenschritt, aber dafür brauche ich vorerst keine teure Softwarelizenz. Wenn man aber öfter ein 360° Video schneiden möchte, sollte man über professioneller Tools nachdenken. Vor allem um:
- Videos nachträglich zu rotieren (Kamera einstellen)
- 2D Overlays zu erzeugen
- Keyframe-Animationen
- 360° Übergänge (da gibt es z.B. in Premiere eigene Übergänge)
- …