Detailiertere Informationen zur Video-Nachbearbeitung
aktualisiert am 27.6.05
Meine Vorgehensweise:
Die Videoclips etwas bearbeiten und entwackeln und im DV-Format
speichern (Achtung: DV-Codec muß installiert sein). Damit kann
ich im Schnittprogramm wie gewohnt mit diesen Clips arbeiten.
Film zurechtschneiden und zusammenstellen, mit Videoschnitt-programm
oder mit Trim() und "+" in AviSynth.
Wenn gewünscht, den Film für PC/Internet reduzieren und
mit einem Codec Deiner Wahl (Empfehlung Xvid) komprimieren.
Beispielskripte findest Du ganz am Schluß dieser Datei.
---
Die Videoclips bearbeite ich mit der Video-Skriptsprache AVISynth
(Freeware). Dort kann man Befehle zur Veränderung des Clips wie in
einem Batch Programm zeilenweise abarbeiten lassen.
Die Skripts können mit jedem Player angeschaut werden. Am besten
funktioniert das mit VirtualDub bzw. VirtualDubMod (beide Freeware).
Letzteres bietet auch einen einfachen Editor, um die Skriptdateien zu
bearbeiten.
Es gibt für beide Programme (VirtualDub und AviSynth) jede Menge
zusätzliche Filter für spezielle Bearbeitungen.
Ein wichtiger Filter für meine Videos ist der DeShaker von Gunnar
Thalin. Diesen Filter gibt es nur für VirtualDub. Im ersten
Schritt analysiert dieser Filter das Video nach Bewegungsvektoren und
errechnet daraus horizontale und vertikale Bewegung, Verdrehung und
Zoom. Im zweiten Schritt werden alle zeitlichen Bewegungs-Verläufe
weichgerechnet und das Video dementsprechend
verschoben/gedreht/gezoomt. Allerdings braucht die Einstellung der
Parameter für diesen Filter einiges an Bastelarbeit bzw.
Erfahrung. Im resultierenden Video fehlt teilweise an den Rändern
Bildinformation, wodurch schwarze Ränder oder Bildartefakte
entstehen. Diese Ränder sollte man wegschneiden. Berücksitige
aber, daß der Fernseher sowieso ca. 10% am Rand nicht darstellen
kann.
---
zu 1. Vorbearbeitung:
Rauschen reduzieren: Temporal Cleaner; Eigentlich nicht unbedingt
erforderlich, da beim Komprimieren mit DivX, Xvid,... das Rauschen und
andere Details sowieso unter den Tisch fallen.
Farbrauschen reduzieren: Das Farbrauschen ist relativ groß.
Läßt sich
aber mit dem Filter CNR2 (Chroma Noise Reduction, externer Filter)
recht gut minimieren. Zusätzlich den Farbkanal weichzeichnen,
damit
Artefakte von CNR nicht sichtbar werden.
Farbsättigung geringfügig erhöhen: Je nach Clip
kann man die Sättigung etwas erhöhen. Kräftigere Farben
sind meistens schöner, aber nicht übertreiben. Der Clip
muß auch mit dem restlichen Film gut zusammenpassen.
Schwarzwert reduzieren: Richtig sattes Schwarz gibt die Kamera
mit einem dunklen grau wieder. Mit Levels() kann man sozusagen einen
bestimmten Grauschleier subtrahieren.
Schärfen: Jedes Halbbild separat schärfen.
Der Skript des modifizierten Clip wird in VirtualDub(mod) geladen und
der DeShake-Filter angewandt. Das Ergebnis mit dem DV-Codec (sofern
einer am System installiert ist) abspeichern. Die Clips sind dann im
gleichen Format wie alle anderen, welche direkt mit der Videokamera
gefilmt wurden und lassen sich im Schnittprogramm beliebig arrangieren.
---
Für eine Darstellung am Computer halte ich folgende weitere
Bearbeitungsschritte für sinnvoll, für
Verbesserungsvorschläge bin aber jederzeit dankbar:
Deinterlacen: Der PC kann kein Interlaced Material richtig
wiedergeben. Das einfachste ist, einfach das 2. Halbbild
wegzuschmeißen. Adaptive Deinterlacing hat bei viel Bewegung
sowieso keinen Sinn. (Würde etwas bessere Schärfe bei ruhigem
Bild bringen.) Mit SeparateFields() und SelectEven() bleibt das erste
Halbbild übrig. Allerdings wird die Bildhöhe auf die
Hälfte reduziert. Die Bildgröße machen wir später
wieder richtig.
Schwarzwert und Gamma korrigieren: Der PC arbeitet mit einem
anderen Gamma und anderen Schwarzwert als der Fernseher. Visuell habe
ich mit einer Gamma-Korrektur von 1.2 gute Ergebnisse erzielt. Der
Schwarzwert vom Fernseher liegt bei 16. Kann man mit dem Befehl
Levels() machen.
Farbsättigung erhöhen: Durch eine Erhöhung vom
Gamma wird die Farbsättingung reduziert. Mit Tweak() kann man sie
wieder erhöhen.
Ränder abschneiden: Durch das Entwackeln entstehen schwarze
oder mit Artefakten behaftete Ränder. Diese mit Crop()
wegschneiden.
Größe reduzieren: Die Helmkamera hat sozusagen eine
Auflösung von 480 Pixel horizontal. Mit DV werden 720 gespeichert.
Theoretisch und auch praktisch überprüft kann man die
horizontale Größe auf 67% reduzieren ohne Details und
Schärfe zu verlieren. Die resultierende Bildbreite muß aber
durch 16 teilbar sein, weil die Komprimierung der Videos in 16x16
Pixel-Blöcken passiert. Die durch das Deinterlacen halbierte
Bildhöhe muß leicht erhöht werden, damit das
Seitenverhältnis wieder richtig ist. Beachte, bei DV-Quellmaterial
sind bereits die ursprünglichen Pixel nicht quadratisch, sondern
von 768 auf 720 Pixel gestaucht (Faktor 1.0667). Zum Skalieren geht
LanczosResize() am besten, da er im Gegensatz zu BicubicResize()
schärfere Kanten produziert.
Ton: Samplingrate reduzieren, auf Mono konvertieren
---
Im folgenden noch Beispiele:
1. Skript, der zum Deshaken geladen wird (zb. open.avs)
# load the external filter
LoadPlugin("D:\Programme\AviSynth 2.54\Plugins\Cnr2.dll")
# Open avi in YUY2
colorspace
AVISource("F:\Work\20\050328_Helm4.avi",pixel_Type="YUY2")
# sharpen, but each
field separately
SeparateFields.Sharpen(.4).weave
---
2. Meine Parameter für den Filter DeShake;
Speichern in Datei "deshake.vcf" und in VDub laden (Strg+L)
VirtualDub.video.filters.Add("Deshaker
v1.4"); VirtualDub.video.filters.instance[0].Config("3|2|24|4|1.067|-1|1.067|
-1|720|576|0|1|1|1000|1000|1000|0|2|1|0|2|5|20|500|4|
F:\\Work\\20\\050331_MR1.log|0|1|100|100|40|150|
0|0|0|0|0|1|0|1|10|10|5|15|1|1|25|25");
(alles in 1 Zeile)
---
3. Weitere Bearbeitung für PC
# load and append
some clips
AVISource("F:\Work\20\050404_MR1.avi",pixel_Type="YUY2")+\
AVISource("F:\Work\20\050404_MR2.avi",pixel_Type="YUY2")+\
AVISource("F:\Work\20\050404_MR3.avi",pixel_Type="YUY2")
# crop clip on all
sides Left=32 Top=16
Crop(Left,Top,-Left,-Top)
# select only bottom
field SeparateFields SelectOdd
# reduce black level
and adjust gamma for PC
Levels(16,1.2,255,0,255)
# increase saturation Tweak(sat=1.2)
# reduce size by f
and mutiple of 16 f=0.70
LanczosResize(Round((720-2*Left)*f/16)*16,\
Round((576-2*Top)*f/16)*16)
# Audio to mono and
32kHz ConvertToMono ResampleAudio(32000)