I
Videostabilisierung
I Rolling
Shutter Effeckt entfernen I Deshaker V3 I
A.
Videostabilisierung
mit VirtualDub und Deshaker
In
machen NLE's arbeitet der Frameserver
nicht, z.B. in EDIUS.
In
diesem Fall kann man das
Videoschnittprogramm VirtualDub
einsetzen, jedoch nur wenn Clips im
AVI-Format vorhanden sind. Man kann
in diesem Fall also keine
verlustlose Frame-Übergabe per
Frameserver machen. Clips in
MPEG2-HD*
oder AVCHD-Komprimierung müssen
erst in AVI konvertiert werden, z.B.
HQ-AVI. Damit bekommt man nur
eine geringe Bildqualitätveränderung**.
*
Für
MPEG2-Videos gibt es von fccHandler eine erweiterte Version von
VirtualDub, mit der man auch MPEG-2-Dateien einlesen kann. Das
Programm gibt es hier.
**
VIDEOAKTIV DIGITAL 5/2007 hat auf
Seite 80-83 die Konvertierung eines
MPEG2-HD Files vom Camcorder HDR-HC3
untersucht und festgestellt, dass
die Meßpunkte welche der Canopus
HQ-Codec produziert im
Promillebereich vom Original
abweichen. Die Meßpunkte fielen
sogar minimal besser aus als beim
Original. Der Codec bewirkt aber
eine leichte
Kantenaufsteilung(Nachschärfung),
die sicherstellen soll, dass das
Material auch nach der
Videobearbeitung nicht schlechter
aussieht als das Original.
Aus
den NLE-Programmen die ohne
Frameserver arbeiten kann man eine für
das normale VirtualDub lesbare Datei
erstellen, z.B. mit folgenden Codec:
Für
die Komprimierung können
verschiedene Codec eingesetzt
werden, z.B.:
Huffyuv (kostenlos im Internet)
Canopus HQ-Codec (kostenpflichtig,
gibt es nur zusammen mit Canopus
EDIUS)
Canopus Lossless-Codec (wie vor)
PICVideoM-JPEG
3 (kostenpflichtig)
Lagarith-Codec (kostenlos im
Internet)
Nachfolgend
gehe ich also davon aus, dass eine
AVI-Datei zum Entwackeln verfügbar
ist.
Man
benötigt nun folgende
Dateien/Programme:
Deshaker.vdf
VirtualDub
(ich benutze die
deutschsprachige Version!)
Zunächst
installiert man VirtualDub und man läßt
dafür eine Schaltsymbol-Verknüpfung
auf dem Desktop anlegen. Jetzt
kopiert man die Datei Deshaker.vdf
in das Plugin-Verzeichnis von
VirtualDub.
Wir
starten nun VirtualDub mit der Schaltfläche
vom Desktop aus...
-
Mit
der Tastenkombination Strg +
O laden wir den vorbereiteten
Wackelclip in VirtualDub
-
Wenn
wir an dem Timeline-Schieber in
VD etwas ruckeln wird der Clip
sichtbar. Mit rechter Maustaste
klicken wir auf das Videofenster
und machen es soviel kleiner,
dass zwei solche Fenster
nebeneinander passen. das rechte
Videofenster stellen wir auf
identische Größe ein.
-
Jetzt
klicken wir auf der Menüleiste
auf Video/Filter. Es geht ein
Fenster auf und dort klicken wir
auf den Schalter "Hinzufügen".
Jetzt werden sämtliche Filter
angeboten, wir wählen den
Deshaker aus und klicken auf OK.
Es geht jetzt das
Einstellfenster des Deshakers
auf:
Jetzt
geht es zur Parametereinstellung.
Viele Leute haben sich bereits mit
der Wahl der besten Parameter beschäftigt,
wobei es eigentlich keine optimale
Einstellung gibt, weil das
Videomaterial unterschiedliche
Eigenschaften haben kann. Per Google
findet man verschiedene Vorschläge.
Für
das folgende HDV-Testvideo habe ich
diese Parameter im Deshaker V2.0
verwendet, zwischenzeitlich arbeite
ich mit der Version 2.2.
Bereich
Pass 1&2:
Haken
gesetzt bei: Camcorder
has a rolling shutter für HDR-HC3
mit CMOS-Chip!
Bereich
Pass 1:
Bereich
Pass 2:
Die
Einstellungen kann man speichern mit
der Tastenkombination Strg + S.
Mit Strg + L kann man die
Settings für den Deshaker erneut
laden.
Wir
beginnen nun mit der Realisierung
der Bildberuhigung wie folgt:
-
Per
Video/Filter/Deshaker klicken
wir
auf Pass 1 und dann auf OK. Wir
stellen den Timeline-Scrubber
ganz nach links und
starten VirtualDub mit der
Tate "Enter". Der Clip wird
analysiert und die Daten werden
in der Datei Deshaker.log
gespeichert.
Für die Analyse im Pass 1 fällt
ordentlich Zeit an, bei meinem
PC mit dem Intel Prozessor Q6600
und OC auf 4x3GHz fällt ein
Zeitaufwand von 2 Minuten pro
Sekunde Video an.
-
Per
Video/Filter/Deshaker klicken
wir auf Pass 2 und dann auf OK.
In VD stellen wir den Scrubber
erneut ganz nach links und
starten VD erneut mit "Enter".
Die Berechnung läuft jetzt
recht schnell durch.
-
Per
Taste F5 können wir uns
in der Vorschau ansehen was der
Deshaker aus dem Wackelclip
gemacht hat.
Gegebenenfalls ändern wir
die Parameter im Pass 2 um
andere Ergebnisse zu bekommen.
-
Mit
der Taste F7 können wir
jetzt den entwackelten Clip
abspeichern mit einem Namen
den wir leicht wiedererkennen.
In dem VD-Menü
Videokomprimierung können wir
angeben mit welchem Codec das
Video erstellt werden soll.
Dateigrößen für den 8
Sekunden Testclip:
Canopus HQ-Codec = 109 MB
Canopus Lossless-Codec = 487 MB
PICVideoM-JPEG
3 VfW
= 38,6 MB
-
Ergebnis
der Bildberuhigung bei meinem
Testclip:
Beispiel
einer Videoberuhigung...
Die meiste Zeit geht
im Pass 1 drauf während der
Bewegungsanalyse. Im Pass 2 kann mit
verschiedenen Parametern
experimentiert werden ohne
Wiederholung von Pass 1.
Im
Internet findet man noch viele
Tipps, was man so noch tun könnte
bei der Parameterwahl bei Pass 2 im Deshaker
Einstellmenü. Ich habe einige
Punkte nachfolgend zusammengetragen:
-
Je
höher die "Motion
smoothness", desto stabiler
das Bild, aber desto größer
die Gefahr, dass der
Bildausschnitt dem gewünschten
Bild zu träge folgt und sich Ränder
bilden
-
Je
größer "Max. correction
limits", desto mehr darf
der Deshaker das Bild hin- und
her verschieben
-
Rotation
und Zoom sollte man eigentlich
unangetastet lassen, außer es kommen solche Bewegungen
tatsächlich im Video vorhanden
-
Man
sollte bei "Motion
smoothness" mit 4000 und
Vertikal und bei "Max. correction
limits" mit 100 für
Horizontal und Vertical beginnen
und ab da mit anderen Werten
spielen
-
Bei
statischen Motiven, die mit Tele
aufgenommen worden sind sollte "Motion
smoothness" im Bereich von
10000 bis 50000 für Horizontal
und Vertical verwendet werden.
So werden auch niederfrequente
Kamerabewegungen beruhigt. Soll
nur das Handzittern beruhigt
aber die Kamerabewegung erhalten
bleiben, dann hat sich ein Wert
von 1000 bewährt
-
Im
Falle von Strandszenen mit 50%
Wasser sollte "Max. correction
limits" für Rotation und
und Zoom auf 0(Null) gestellt
werden, sonst könnte der
Horizont im Takt der Wellen
schwanken
-
Bei
der Option "Ignore Image
area" kann man Bereiche
definieren die nicht für die
Bewertung der Bewegung
heranzuziehen sind.
-
Bei
Reißschwenks wird empfohlen "Motion
smoothness" auf 300-500
einzustellen
-
Wenn
man die entstehenden schwarzen
Ausgleichsränder erst später
im NLE durch Vergrößerung
des Videos wegmacht, verliert
das Videobild an Bildqualität
trotz evtl. Nachschärfung. Besser
ist es im 2ten Pass einen
"Extra zoom factor"
von z.B. 1.1 (je nach Wackelrand
den wir zulassen wollen!)
einzugeben siehe /7/, dann verliert
man kaum an Bildqualität. In
diesem Fall muss der Haken bei
"Use previous and future
Frames to fill in borders"
weg.
-
Mit
dem Deshaker kann man per Option
"Generate "interlaced
progressive" video" im
2.Pass aus Interlaced-Video auch
Progressive-Video erzeugen.
-
Ein
wirkungsvolles Setting
hat Harald
vom Videotreffpunkt
entwickelt, welches ich z.B. zur
Beruhigung von Clips mit Erfolg
verwendete, die von einem Kamel
aus und aus dem Wohnmobil heraus
aufgenommen worden sind.
Erfahrungstipp
zum "Extra zoom faktor":
Mein
Ziel ist es immer bei der
Beruhigung von Clips per
Deshaker möglichst nur einen
geringen Betrag in das Bild
einzuzoomen (Extra zoom faktor
< 1.1 im Pass2!) um weniger
an Original-Bildschärfe zu
verlieren. Aus diesem Grund
setze ich zunächst den
"Extra zoom faktor"
= 1 und schaue mir dann an
welche Größenordnung die
schwarzen Bildränder an
besonders verwackelten Stellen
annehmen. Oft ist es so, dass
man die Clipteile mit größeren
schwarzen Rändern garnicht
benötigt, ich schneide sie
dann einfach weg und passe den
"Extra zoom faktor"
der geringer nötigen
Hochskalierung an. Für eine
evtl. erforderliche Nachschärfung
bieten sich je nach
Videoschnittprogramm
unterschiedliche Filter an.
Beispiel
einer Aufnahme aus dem
Wohnmobil in Fahrtrichtung:
Die
Aufnahme habe ich aus freier
Hand mit der Canon HV30 bei
aktiviertem OIS gemacht.Solche
Aufnahmen mache ich immer
etwas länger (10-15
Sekunden), damit ich später
daraus ein 5-8 Sekunden
dauernde brauchbare Szene
extrahieren und beruhigen
kann.
Im
Bild links war die befahrene
Strasse noch recht glatt, der
Randsausgleichsbedarf ist für
den Deshaker ist hier recht
gering, wie man an den recht dünnen
schwarzen Linien an der linken
und unteren Bildkante erkennen
kann. Rechts sind wir mit dem
Wohnmobil in ein Schlagloch
gefahren, die Bildverschiebung
ist sehr groß geworden, vor
allem in Vertikalrichtung
durch den entstandenen Stoß
auf das Fahrzeug. Würde man
nun nach der Situation rechts
die Aufnahme per Deshaker
beruhigen, würde der
Bildausschnitt auf den dort
eingezeichneten roten Rahmen
schrumpfen. Um nun den Clip
randlos im Video verwenden zu
können, müßte der
Bildausschnitt um den
"Extra zoom faktor"
= 1.75 hochskaliert werden was
zu keinem guten Bildergebnis
mehr führt weil viel zu weit
eingezoomt werden müßte. Ich
habe dann den Clip um diese
kritische Stelle gekürzt, so
dass ich lediglich einen
Randausgleich wie im Bild
links dargestellt benötigt
habe. Der "Extra zoom
faktor" lag dann bei
1.06, was lediglich ein etwas
weicheres Bild ergab und
dieses nach der Beruhigung
voll verwendungsfähig war. |
Verfügt
man bei der Aufnahme über kein Schwebestativ, dann läßt sich eine
Aufnahme z.B. beim laufen durch die
Markthalle oder einen
Kloster-Kreuzgang mit der Kamera trotzdem
noch mit dem Deshaker beruhigen und
zwar in einer sehr guten Qualität.
Automatisierte
Clip-Beruhigung für mehrere Clips
durchführen
Mit
Hilfe von VirtualDub ist das sehr
schön möglich...
-
Wir
stellen die gewünschte
Komprimierung für die Ausgabe
ein...
-
Wir
laden den ersten Clip in
VirtualDub
- im Deshaker stellen wir Pass 1
ein
- in VirtualDub wählen wir
"als avi speichern
(F7)"
- wir vergeben einen Namen: file
01
- bei "Aktion zur Liste der
Jobs hinzufügen und
fortfahren" setzen wir
einen Haken
- im Deshaker stellen wir Pass 2
ein
- in VirtualDub wählen wir
"als avi speichern
(F7)"
- wir vergeben einen Namen: file
01
- bei "Aktion zur Liste der
Jobs hinzufügen und
fortfahren" setzen wir
einen Haken
-
Wir
laden den zweiten Clip in
VirtualDub
- im Deshaker stellen wir Pass 1
ein
- in VirtualDub wählen wir
"als avi speichern
(F7)"
- wir vergeben einen Namen: file
02
- bei "Aktion zur Liste der
Jobs hinzufügen und
fortfahren" setzen wir
einen Haken
- im Deshaker stellen wir Pass 1
ein
- in VirtualDub wählen wir
"als avi speichern
(F7)"
- wir vergeben einen Namen: file
02
- bei "Aktion zur Liste der
Jobs hinzufügen und
fortfahren" setzen wir
einen Haken
-
Mit
weiteren Clips gehen wir ebenso
vor
-
Nun
gehen wir in VitzualDub auf
Datei/Job Übersicht (F4)
-
Wir
sehen jetzt die Job-Liste...
-
Wir
klicken in der Job-Liste auf
"Starten"...
Man
muss jetzt nur noch warten bis alle
Jobs abgearbeitet sind...
B.
Rolling Shutter Effeckt von
CMOS-Kameras mit VirtualDub und
Deshaker entfernen
Bekanntlich
werden die beiden Halbbilder einer
CMOS-Aufnahme zeilenweise
zeitversetzt aufgenommen. Eine
senkrechte Kante wie ein Lichtmast,
Hauskante etc. werden durch die
zeitlichte Aufnahmeverschiebung im
zusammengesetzten Bild dann von oben
nach unten hin schräg verlaufend
und nicht senkrecht dargestellt.
Siehe auch hier
und hier.
Seit
dem 15.11.2008 gibt es den Deshaker
in der Version 2.4.
Diese Version bietet jetzt die
Option der Rolling Shutter Effect
von CMOS-Kameras entfernen zu können,
siehe hier.
C. Deshaker Version V3
Gunnar
Thalin präsentiert seit August 2013 den überarbeiteten Deshaker in
einer 32Bit und 64Bit-Version mit vielen Verbesserungen auf seiner
Homepage an:
http://www.guthspot.se/video/deshaker.htm
Idealerweise
sollte der Einsatz des 32Bit-Deshakers als Plug-in in der
64Bit-VirtualDub Version 1.9.11 erfolgen. Im Pass 1 wird auf
meinem i7-870er PC jetzt für eine Sekunde Video eine Bearbeitungszeit
von 8,5 Sekunden vom Rechner benötigt. Kostenlos erzielt man auch in
schwierigen Fällen ein sehr gutes Stabilisierundsergebnis, die
Anschaffung einer kommerziellen Lösung erübrigt sich damit!
Die
Kameradateien übergebe ich an VirtualDub codiert in HQ-AVI, HQX-AVI
oder CineForm-AVI, also multirenderingfähig ohne erkennbarer
Qualitätsverluste.
Viel
Erfolg mit VirtualDub und dem
Deshaker!
Linksammlung:
1.
Deshaker-Homepage
2.
Übersetzung
der Anleitung zum Deshaker
3.
Anleitung
zur Benutzung des Deshakers
4.
Laufzeitbiblithek
für VirtualDub (falls noch
nicht auf dem PC vorhanden und VD
somit nicht läuft!)
5.
Lagarith-Codec
6.
PICVideoM-JPEG
3
7.
Beispiel
für die Beruhigung eines
DV-Videos
8.
Deshaken
von interlaced Videos mit
Vorschlägen von Scharfis_Brain
9.
Dateien
mit VirtuaDub splitten