Frage von Herbie:Hallo,
Wenn ich ein interlactes Video deinterlacen möchte, könnte ich folgendes Skript schreiben:
Avisource ("D:Avi DateienSunset 03.avi")
# ConvertToYUY2() #
TomsMoComp(1,15,1)
Jetzt könnte ich einen Filter anwenden. z. B. den Deshaker von Vdub. und möchte danach das Video wieder reinterlacen.
Wie müsste denn das Skript zum Reinterlacen aussehen ?
Etwa so:
Avisource ("D:Avi DateienDeshakte.avi")
SeparateFields()
SelectEvery(4,0,3)
DoubleWeave()
oder
Avisource ("D:Avi DateienDeshakte.avi")
SeparateFields()
Weave()
Wäre das so ok ?
Gruß Herbie
Antwort von - Udo -:
Was sollen dennn die Klimmzüge? Wenn Du deinterlaced hast, wirst Du das nie wieder rückgängig machen können. Die beiden Halbbilder werden zu einem Mittelwert gerechnet oder eins wird weggeworfen. Egal wie - die Information ist weg.
Der Deshaker arbeitet auch mit interlaced Material. Wofür also deinterlacen?
Antwort von Stefan:
Hi Herbie
Dein erstes Skript
:
: Avisource ("D:Avi DateienSunset 03.avi")
: # ConvertToYUY2() #
: TomsMoComp(1,15,1)
verstehe ich nicht. Bist Du Dir sicher mit dem 1. Parameter vom TomsMoComp()? Du hast doch bestimmt DV AVI, oder? Und das soll 50 fps geben? TomsMoComp() macht das aber nicht, werwechselst Du da was?
Auf
http://www.100fps.com" sind mehrere Wege für die Umwandlung 25fps nach 50fps beschrieben. Seperatefields() wäre ein Anfang für 25fps nach 50 fps.
Mit Seperatefields erkaufst Du Dir aber einen Effekt den man Bobbing nennt. Ich weiss nicht, ob das den Deshaker bei der Bewegungsanalyse stört. Es wäre halt auszuprobieren. Tja und anschliessend wieder Weave(). Also ohne Berücksichtigung des Bobbing...
Skript 1:
Avisource("wackel.avi")
separateFields
Speichern als "wackel50fps.avs"
Deshaker in VD
Speichern als "deshaked50fps.avi"
Skript 2:
Avisource("deshaked50fps.avi")
weave
Speichern als "deshaked25fps.avi"
Dazwischen noch ein Deinterlace einzupfriemeln halte ich für Unsinn. Und ich glaube, dass der Deshaker intern bereits mit den enzelnen Halbbildern arbeitet, wenn man als bei ihm die Option "interlaced" anwählt.
Dein zweites Skript
:
: Etwa so: Avisource ("D:Avi DateienDeshakte.avi")
: SeparateFields()
: SelectEvery(4,0,3)
: DoubleWeave()
verstehe ich auch nicht. SelectEvery() mit step_size = 0 ist komisch. Was soll das denn machen?
:
: Avisource ("D:Avi DateienDeshakte.avi")
: SeparateFields()
: Weave()
Verstehe ich auch nicht. Jetzt wird es mir fast peinlich. Dieses Skript macht technisch einfach garnix. Weave() ist nur die Gegenfunktion zu Seperatefields().
Wollen Deine Experimente vielleicht auf 25fps/50fps plus Debobbing raus? Wenn Du bei einem 50 fps Video bleiben möchtest, könntest Du ein Feld um eine Zeile anheben bzw. das Feld um eine Zeile absenken. Das macht z.B. die Funktion Bob() in Avisynth. Bob macht aber noch mehr, er/sie/es interpoliert Zeilen hinzu, weil es eigentlich ein BOB DEINTERLACER ist. Um dann wieder die Originalzeilen aus dem Ergebnis vom Bob-Filter rauszuziehen, kann man nochmal ein Seperatefields machen und über SelectEvery/DoubleWeave die vom Bob interpolierten Zeilen wegwerfen... Jau. Aber was der Deshaker zu 50fps und interpolierten Zeilen meint, weiss ich auch nicht. Jedenfalls würde das Wegwerfen der interolierten Zeilen und Zusammensetzen der Reste so gehen:
clip = Avisource ("D:Avi DateienDeshakte.avi")
SeparateFields(clip)
SelectEvery(clip, 4, 0)
Weave(clip)
Ich sehe das ganze etwas kritisch - was passiert, wenn der Deshaker zwischen zwei 50 fps Bildern eine Bewegung korrigiert? Ich glaube dann verhackstückt es die ganze Zeilenmischerei...
Viel Glück
Der dicke Stefan
Antwort von Herbie:
Der Deshaker arbeitet auch mit interlaced Material. Wofür also deinterlacen?
Das weiss ich wohl, nur sagt man in Fachkreisen, daß der Deshaker eben bei deinterlactem Material bessere Ergebnisse abliefert und wenn man mit einem Bobber, z.B. kernelbob() oder tmcbob() deinterlaced, dann werden aus den 50 Halbildern nicht 25 Vollbilder sondern 50 Vollbilder, da ein Bobber das Halbbild durch Interpolation auf ein Vollbild streckt und die Bildqualität soll nicht darunter leiden. Deshalb der Klimmzug.
Gruß Herbie
Antwort von Herbie:
Danke Stefan,
für die Mühe.
Werde es mir mal in Ruhe anschauen.
Gruß Herbie
Antwort von Stefan:
Nachtrag
Ich habe mir gerade Deine Postings bei den Videofreunden und bei Gleitz reingezogen. Du stellst meist die erste Frage ziemlich allgemein, bekommst dementsprechend auch relativ allgemeine Antworten. Andere steigen in die Diskussionen ein und es driftet in irgendeine Richtung ab. Aber Du beziehst die Antworten dann auf Dein Problem. Mein Eindruck ist, dass es dadurch für Dich unnötigerweise schwerer wird. Klar, vielleicht kann man mit 50fps besser Entrauschen, aber wer sagt, dass Entwackeln auch besser geht?
Viel Glück
Der dicke Stefan
Antwort von peter71:
Hallo,
Ich bin Peter, ganz neu auf Slashcam.
Bis jetzt komprimierte ich meine home-DV materiellen mit
Avisynth und eine hi-profile capable mpeg2 encoder, im 50fps.
Ich benutzte einfach 'bob', ohne 'separatefields'.
Meine 2 fragen:
1. ist es richtig, dass 'bob' macht 'separatefields' implizit, dh. brauche
ich keine separation davor extra machen ?
2. gibt es ein Weg, einen externen mpeg2 encoder mit
Ulead VideoStudio 9 oder mit Cyberlink PowerDirector benutzen ?
Vielleicht das XML project-file von PowerDirector ins .AVS
konvertieren ?
Danke im Voraus,
Peter