Schlagwort-Archive: linux

Wie ich den Fischaugeneffekt entferne mit Linsenkorrektur

Ich möchte für jede Weitwinkeleinstellung meiner GoPro Hero 3 eine annähernd optimale Einstellung für die Linsenkorrektur über gespeicherte Effekteinstellungen in Kdenlive anwenden können.
Wie ich die optimale Einstellungen finde, um den Fisheye/Fischaugen Effekt aus meinen Videos, per Mausklick, zu  entfernen, erkläre ich im Folgenden.

Werkzeuge

  • Gimp – Open Source Bildbearbeitung
  • Kdenlive – Open Source Videobearbeitung
  • Linux Laptop* – Open Source Betriebssystem Ubuntu
  • GoPro Hero 3* – Action Kamera mit Fischauge / gewölbter Linse

Testbild erstellen mit Gimp

Um eine optimale Anpassung machen zu können brauche ich ein Testbild, welches einfach ausgedruckt oder per Monitor abgefilmt wird.

Ein quadratisches schwarz weis Raster habe ich mir mit Gimp selbst erstellt, in dem ich mir alle 50 Pixel Hilfslinien erstellt habe und über die rechteckige Auswahl und Umschalt gedrückt, die Zwischenräume der Hilfslinien markiert und dann ausgefüllt habe.

Linsenkorrektur Testbild 1920x1080 Schwarz Weiss Raster Kreis Striche
Linsenkorrektur Testbild

Vereinfacht habe ich noch, in dem ich ein Teilstück davon markiert und eingefügt hab an passender Stelle.
Dazu hab ich noch einen Kreis gemalt, um die Mitte besser zu finden.
Erstmal elliptische Auswahl und einen 3 x 3 Hilfslinienfelder großen Kreis in die Mitte schieben und danach 2 gegenüber liegende Anfasser auf einer 45° Linie mit den Hilfslinienfeldern nach außen schieben.
Nach dem Anfasser links oben nach links oben und rechts unten nach rechts unten ziehen, gebe ich der Auswahl noch einen Rand über das Auswahlmenü und fülle es mit schwarz.
Danach füge ich noch diagonale Linien quer von Ecke zu Ecke hinzu.

Testbild abfilmen mit Fischaugen Kamera

Über das Live Streaming Feature der GoPro App steuer ich das Videobild und die Aufnahme.
Hierbei achte ich drauf, die Kamera möglichst zentral auf das Testbild auszurichten.
Ich wechsel die Weitwinkeleinstellungen vom Fischauge nach jeder Aufnahme und speicher die Videos, nach der Aufnahme auf meinen Rechner.

Fischauge entfernen in Kdenlive

Die gespeicherten Clips der Testaufnahmen ziehe ich einzeln in die Zeitleiste von Kdenlive, um jedem Clip mit Fischauge einen Lense correction / Linsenkorrektur Effekt zu verpassen.
Den Linsenkorrektur Effekt passe ich jetzt für jeden Clip einzeln an, um somit für jeden Weitwinkel eine Einstellung zu finden.

Bei dem bearbeiten eines Clips mit Fischauge achte ich nun drauf, das Testbild auf einem Frame möglichst gerade und zentral zu erwischen, um mit diesem Standbild meine Linsenkorrektur einzustellen.

Durch das Karomuster und die Querlinien habe ich ein paar Referenzpunkte die ich nun versuche optisch entzerrt anzupassen. Zum kontrollieren, ob meine Optik keinen Knick hat, benutz ich ein simples Linial* auf dem Monitor*.
So scanne ich das Testbild ab, ob ich vertikale und horizontale Linien bekomme und somit das Fischauge entzerre.
Die einzeln eingestellte Linsenkorrektur für die Weitwinkeleinstellungen der GoPro speichere ich wiederum einzeln in einen eigenen Effekt von Kdenlive, so steht mir jede Einstellung für Linsenkorrektur der GoPro in einem Effekt zur Verfügung.

Ein Tutorial auf GitHub zeigt die Erstellung eines Linsenkorrektur Effekt für die GoPro Hero 3 in Kdenlive mit Werten, die ich so nicht übernehmen konnte.

Einstellungen der Linsenkorrektur

Für die einzelnen Weitwinkeleinstellungen der GoPro Hero 3 sind die Einstellungen der Linsenkorrektur nur Näherungen an die Optimalwerte, aber erzielen gute unverzerrte Bilder.

GoPro Kamerawinkel – Wide

502 – Horrizontal center
479 – Vertical center
199 – Center correction
560 – Edges correction
560 – Brightnes

GoPro Kamerawinkel – Medium

498 – Horrizontal center
482 – Vertical center
244 – Center correction
570 – Edges correction
560 – Brightnes

GoPro Kamerawinkel – Narrow

453 – Horrizontal center
573 – Vertical center
306 – Center correction
577 – Edges correction
560 – Brightnes

Fischauge im Vergleich mit Linsenkorrektur

Dies Video zeigt die Ergebnisse meiner Linsenkorrektur in Kdenlive für die Weitwinkeleinstellungen der GoPro Hero 3.

Im Videovergleich zeige ich auch mein Testbild unverzerrt, für den Fall, jemand möchte dies Tutorial nutzen, um eigene Anpassungen zu machen.

Fazit

Für mich sind diese Einstellungen zur Linsenkorrektur jetzt das beste zu erzielende Ergebnis und vielleicht noch nicht perfekt, für den geringen Aufwand den ich rein gesteckt habe, aber die Ergebnisse sprechen für sich.
Je präziser hier vorgegangen wird, desto genauere Ergebnisse können natürlich erzielt werden.
Dies Verfahren, mit Testbild abfilmen, kann hinzu noch auf jede andere Kameralinse mit Fischauge / gewölbter Linse und andere Videobearbeitungssoftware* angewendet werden, ein Linsenkorrektur Effekt vorausgesetzt, um optimal ein Fischauge zu entfernen.

Quellen

*(Affilliate Links)

Wie bearbeite ich Speedpainting Videos unter Linux

Nach dem Malen von Leinwänden erstelle ich dann und wann ein Speedpainting Video von den Aufnahmen meiner GoPro. Wie ich dabei unter Linux vor gehe, erkläre ich im Folgenden.

Welche technischen Werkzeuge benutze ich zur Videobearbeitung?

Ich unterliege ein paar technischen Einschränkungen in dem ich keinen High End Gaming PC* zum bearbeiten von Videos nehme, sondern einen handelsüblichen, eher schwachen Laptop mit Intel i3 Core Prozessor und 8 GB RAM* etc. hernehme.

Als Kammera steht mir eine GoPro Hero 3* zur Verfügung. Diese läuft dann mit bei 30 fps und nimmt im Full HD Format auf.
Dabei kommen üblicherweise mehrere Gigabyte an Videodaten zusammen in mehreren Dateien gesplittet.

Kopieren der Videos

Ich kopiere den kompletten Ordner der GoPro microSD-Karte* in 2 unterschiedliche Ordner, bevor ich die microSD-Karte lösche.
Das Löschen erledige ich vor den nächsten Aufnahmen über das Menü der GoPro.

Einmal in „originale“ kopieren und dann noch in „projekte“.

cp /media/user/card-id/DCIM/* ~/videos/orignale/
cp /media/user/card-id/DCIM/* ~/videos/projekte/

Unter Originale werden die Dateien unbelassen archiviert und unter Projekte werden alle weiteren Änderungen an den Videos vorgenommen.
Im Falle eines Datenverlust im Projektordner können die originalen Projektdaten wieder hergestellt werden.

Weiter benenne ich die beiden erzeugten Unterordner aussagekräftig um.

  • cd ~/videos/originale/
    mv 101GOPRO/ 2015-09-09-graffiti-speedpainting/
    cd ../projekte/
    mv 101GOPRO/ 2015-09-09-graffiti-speedpainting/
  • Schema: yyyy-mm-dd-ordnername-beschreibend

Videos in der Kommandozeile bearbeiten

Zunächst lösche ich alle Dateien die keine Videos oder Bilder sind im Projektordner.

rm ~/videos/projekte/projektordner/*.LVR
rm ~/videos/projekte/projektordner/*.THM

Danach lege ich ein Shellskript an,  in der ich die nötigen Befehle unterbringe für die Beschleunigung der Videos in einem Durchgang.

cd ~/videos/projekte/projektordner/
nano speedup-script.sh

In Nano die Kopfzeile für Shellskripte einfügen und danach folgen  die Aufrufe, für jedes Video einzeln.
Sind die einzelnen Dateinamen angepasst und der Faktor für die Beschleunigung angegeben, wird gespeichert.
In Nano speichern geht über Strg + O und verlassen des Editor mit Strg + X.

#!/bin/bash
avconv -i GOPR1337.MP4 -filter:v "setpts=0.2*PTS" -an speedpainting-1337-1-02.mp4

Ich kopiere mir dies Skript meistens aus einem anderen Projektordner und mache es nach den Anpassungen über die Kommandozeile ausführbar.

chmod +x speedup-script.sh

Ein Aufruf in der Kommandozeile führt das Skript aus.

./speedup-script.sh

Im Skript wird Zeile für Zeile das Programm Avconv mit ihren bestimmten Parametern aufgerufen um das konvertieren der einzelnen Videos zu automatisieren.
Avconv ersetzt unter Ubuntu das unter Linux verbreitete ffmpeg, mit dem ähnliche Ergebnisse erzielt werden können.

Das zu beschleunigende Video wird mit dem Parameter -i angegeben. Der Parameter -filter:v „setpts=0.5*PTS“ bestimmt den Beschleunigungsfaktor. Alles über 1.0*PTS verlangsamt das Video.
Der Parameter -an verwirft noch den Audiostream der Aufnahme, da ich eh mit Musik nachvertone und an der Geschwindigkeit des Videos spiele ist der unwichtig.
Als letztes folgt der Ausgabename, der wieder aussagekräftig zum Projekt umbenannt wird.

  • projektkeyword-originalfilenumber-partid-ptsfaktor.mp4

Das Beschleunigen der Videos zu einem Speedpainting wird somit über den Filter setpts möglich und nach einzelnen Tests habe ich herausgefunden mit welchem Faktor ich die Videos beschleunige.
Aus einem Part eines GoPro Video, welcher im maximalfall 3,9 GB Größe hat und bei meinen Einstellungen in etwa 26 min Länge hat in Originalzeit, wird mit dem  Faktor 0.2*PTS ein 5 Minuten Video mit ~90 mb oder bei 0.04*PTS ein 1 Minuten Video mit ~30 mb erstellt.

Was die Weiterbearbeitung in Videobearbeitungssoftware mit wenig Arbeitsspeicher unter der Haube angeht, ist mir dies Verhältnis der anfallenden Daten und der Schnelligkeit des eigentlichen Speedpaintings nach dem Beschleunigen beim Faktor 0.04, eine passende Wahl.
Alles drunter beschleunigt die einzelnen Speedpainting Schritte zu schnell und die anfallende Länge des Videos lässt sich gut mit 1 oder 2 Musikstücken nachvertonen.

Software zum zusammenfügen und weiterbearbeiten der Videos

Ich habe Kdenlive für mich entdeckt als Open Source Videobearbeitungsprogramm unter Linux.

Gopro selbst stellt mit GoPro-Studio eine Software zur Verfügung, die unter meinen derzeitigen Systembedingungen leider nicht ohne weitere Frickelei lauffähig ist.

Wie man doch ähnliche Ergebnisse erziehlen kann unter Linux wurde in einem Github Gist zusammengetragen.

Projekt anlegen

Als erstes lege ich in Kdenlive ein neues Projekt an und speicher es im Projektordner für dieses Speedpainting.

Kdenlive screenshot
Kdenlive

Danach in den Einstellungen als Projektordner den Projektordner angeben.

Kdenlive Screenshot - Neues Projekt
Kdenlive – Neues Projekt

Der Abspann wird als Titelclip für 10 sec erzeugt und auch als Clip importiert.

Kdenlive Screenshot - Clips importieren
Kdenlive – Titel Clip importieren

Videos als Clips importieren und Projekt abspeichern.

Anordnen der Videos

Zum arrangieren der Videos in der Timeline wird einfach ein Clip nach dem andern in die Timeline gezogen.
Schön hintereinander gepackt kommt auch der Titelclip als Abspann dazu.

Kdenlive Sreenshot - Clips anordnen
Kdenlive – Clips anordnen

In den Abspann setze ich ein Fade from black von 1 sec,  sowie ein Fade to black von 3 sec.
Den letzten Part vor dem Abspann bekommt auch ein Fade to black Effekt verpassen mit 2 sec.

Kdenlive Screenshot - Fade Effekt
Kdenlive – Fade Effekt

Grundsätzlich wären hier die vorherigen Schitte der Beschleunigung auch anwendbar über den Effekt Bewegung >> Geschwindigkeit, Doch dies führte in der Vergangenheit schon zu Fehlern bei meinen Speedpainding Videos. Ich beschränke mich hier auf Zusammenfügen, Farbkorrektur und Nachvertonen.

Die Farbkorrektur passend zum GoPro Videomaterial in Kdenlive

Für die Farbkorrektur, eine Wissenschaft an sich*, habe ich mir einen Effekt Stack mit Voreinstellungen gespeichert, den ich Effekt für Effekt durchgehe, um Feinabstimmungen bezüglich der Helligkeit des Aufnahmeorts, etc. anzupassen.

Kdenlive Screenshot - Farbkorrektur
Kdenlive – Farbkorrektur

Links zum Thema.

Mit Linsenkorrektur den Fisheyeeffekt der GoPro aufheben

Für diesen Schritt habe ich ebenfalls einen Effekt abgespeichert, den ich anwende und nach meinen Bedingungen anpasse.
Dafür gruppiere ich alle Videos mit Fischauge und wende danach den Lens correction Effekt an.

Kdenlive Screenhot- Lense correction
Kdenlive – Lense correction

Meine Einstellungen zur Linsenkorrektur erkläre ich in diesem Artikel.

Ein Tutorial bei Github über Fisheye Korrektur gab mir die Einstellungen zum übernehmen, welche ich leicht angepasst habe zu meinen Weitwinkeleinstellungen in der Aufnahme.

Das Nachvertonen

Um die richtige Musik zu suchen habe ich mir angewöhnt die YouTube Audio Bibliothek durch zu hören und je nach Bild suche ich dann nach verschiedenen Kategorien und Längen.

Eine kleine Vorauswahl kann schon beim Konvertieren ausgesucht werden. um an dieser Stelle nicht  lange suchen zu müssen.
Bin ich fündig geworden, lade ich die Musik runter und importiere es über das Clipfenster.
Der importierte Audiotrack wird noch auf die Cliplänge eingekürzt und mit einem Fade out Effekt belegt von 3 sec.

Kdenlive Screenshot - Audio Tarck
Kdenlive – Audio Tarck

Steht die Musik wird im Abspann  nochmal der Titelclip  bearbeitet für die Musik Credits.

Das Speedpainting zum Rendern vorbereiten

In der Timeline markiere ich den aktiven Projektbereich, in dem die ganzen Clips liegen.

Kdenlive Screenshot - Markierter Projektraum
Kdenlive – Markierter Projektraum

Im Rendermenü gebe ich wieder einen aussagekräftigen Dateinamen und den Projektordner an und wähle den Punkt nur markiertes Teilstück.

Kdenlive Sreenshot - Speedpainting rendern
Kdenlive – Speedpainting rendern

Jetzt nochmal unter neuem Namen abspeichern und es kann das Speedpainting gerendert werden.

Läuft das Rendern fehlerfrei durch, dann habe ich ein neues Video bereit zum Upload auf meinen YouTube Kanal.

Fazit

Soweit so gut, es lässt sich für mich leicht mit den verkleinerten Dateien arbeiten und der Aufwand für ein Video ist überschaubar, auch wenn ich finde, die ein oder andere Einstellung noch verbessern zu müssen.
Ich möchte noch die genauen Linsenkorrektureinstellungen für die verschiedenen Weitwinkeleinstellungen der GoPro herausfinden, die Automatisierung ein wenig verbessern, indem ich nur ein Skript erstelle, in dem automatisch die Videos eingelesen und beschleunigt werden können, sowie hat die Farbkorrektur noch ein paar Ansatzpunkte, um mit abgefilmten Testbildern zu genaueren Ergebnissen zu kommen.

Quellen:

*(Affiliate-Links)