Postproduktion allgemein Forum



Kleines AviSynth-Problem



Fragen rund um die Nachbearbeitung, Videoschnitt, Export, etc. (div. Software)
Antworten
beiti
Beiträge: 5203

Kleines AviSynth-Problem

Beitrag von beiti »

Ich habe mich nach längerer Pause mal wieder mit AviSynth (genauer: Framerate-Interpolation mittels MVTools) auseinandergesetzt.

Früher habe ich das schon mal erfolgreich praktiziert.
Damals hatte ich jedoch immer Interlaced-Ausgangsmaterial. Daher habe ich den Yadif-Filter benutzt, um aus meinen 50 Halbbildern erst mal 50 Vollbilder zu machen, bevor ich diese Vollbilder dann zur weiteren Verarbeitung an MVTools übergeben habe.
Heute geht es allerdings um Material, das schon in Vollbildern (18 fps) vorliegt. Daher habe ich den Yadif-Filter einfach durch Vorsetzen von # aus dem Script rausgenommen - mit dem Ergebnis, dass das Script danach überhaupt nicht mehr funktionierte. Es gab immer rätselhafte Fehlermeldungen, laut denen angeblich ein Parameter des MSuper-Befehls nicht erkannt werde (was Unfug ist - schließlich wird er ja, solange die Yadif-Zeilen im Script drin sind, auch erkannt).

Nach längerem Probieren bin ich dann drauf gekommen, dass ich noch nicht mal eine komplette Yadif-Konversion machen muss. Es genügt schon, die Zeile "AssumeTTF" drin zu lassen. Die war ja eigentlich nur für den Yadif-Filter gedacht, damit der weiß, wie er die Halbbildreihenfolge des Materials behandeln muss. Aber aus irgendeinem ominösen Grund sorgt sie auch dafür, dass mein Video plötzlich durch MVTools lesbar wird.

Hat jemand eine Erklärung für dieses Verhalten? Kann ich die Zeile "AssumeTTF" durch irgendwas ersetzen, was nicht (fälschlich) mein Material als Interlaced interpretiert?
Hat "AssumeTTF" überhaupt Einfluss aufs Ergebnis in MVTools?

Code: Alles auswählen

# Import des Ausgangsdatei
ausgangsclip = DirectShowSource("F:\boccia2-18.avi", fps = 18, audio = False)

# Laden des Yadif-PlugIns
# Load_Stdcall_plugin("C:\Program Files (x86)\AviSynth\plugins\yadif.dll")

# Smart-Bobbing mit Yadif
AssumeTFF(ausgangsclip)
# Yadif(Mode=1)

# Laden des MVTools-2-PlugIn.
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\mvtools2.dll")

# Erstellung temporärer Clips: Super-Clip und Vektoren-Clips
superclip = MSuper(pel=2)
vektorclip_rueckw = MAnalyse(superclip, overlap=0, isb = true, search=4)
vektorclip_vorw = MAnalyse(superclip, overlap=0, isb = false, search=4)

# Berechnung der Zwischenbilder für 59,94 fps
MFlowFps(ausgangsclip, superclip, vektorclip_rueckw, vektorclip_vorw, num=60000, den=1001)
Interessantes rund um die Foto- und Videotechnik - fotovideotec.de
Der FotoVideoTec-Blog - fotovideotec-blog.de
Alles über Satellitenempfang - satellitenempfang.info



mash_gh4
Beiträge: 4716

Re: Kleines AviSynth-Problem

Beitrag von mash_gh4 »

ich kann es hier nicht ganz einfach reproduzieren, weil unter linux ja bekanntlich besser VaporSynth benutzt wird, aber die "AssumeTFF" anweisung sollte man wohl definit genaus wie die den YADIF-deinterlace-schritt rauswerfen, wenn es sich um progressives ausgangesmaterial handelt. ein einfaches "AviSource("....avi")" od.ä. sollt statt dessen genügen.

evtl. solltest du jene "rätselhafte Fehlermeldungen", von denen du sprichst, auch posten, um konkreter sagen zu können, was sie bedeuten.



beiti
Beiträge: 5203

Re: Kleines AviSynth-Problem

Beitrag von beiti »

Ich hatte es zuvor auch schon mit AVISource probiert. Das macht keinen Unterschied. (DirectShowSource war eigentlich nur einer meiner hilflosen Versuche, dem Problem auf die Spur zu kommen.)

Die Fehlermeldung kann ich posten. Die ist nach meiner Einschätzung allerdings irreführend und hat mit dem eigentlichen Problem nichts zu tun (das kenne ich noch aus früheren Fehlversuchen mit AviSynth).

Wenn ich die Zeile "AssumeTFF" weglasse, kommt nämlich Folgendes:
Avisynth open failure:
Script error: Invalid arguments to funktion "MSuper"
(F:\fps_interpolieren_boccia2.avs, line 25)

Was hier mit "line 25" gemeint ist (also wie das Programm die Zeilen im Script zählt), ist nicht ganz klar. Nach meiner Zählung ist Zeile 25 eine von denen, die mit # beginnen und daher nicht relevant sind. (Mein Originalscript enthält jede Menge Kommentare mit # davor.)
Ich denke, die Fehlermeldung bezieht sich auf die einzige Zeile, in der der Begriff "MSuper" überhaupt vorkommt:
superclip = MSuper(pel=2)

Was hier falsch sein soll, erkenne ich nicht. Wenn man das Argument (pel=2) weglässt, ändert das übrigens nichts.
Abgesehen davon wird die Zeile ja wieder anstandslos verarbeitet, sobald oben die Zeile "AssumeTFF" aktiv ist. Von daher kann sie doch nicht völlig falsch sein.
Interessantes rund um die Foto- und Videotechnik - fotovideotec.de
Der FotoVideoTec-Blog - fotovideotec-blog.de
Alles über Satellitenempfang - satellitenempfang.info



mash_gh4
Beiträge: 4716

Re: Kleines AviSynth-Problem

Beitrag von mash_gh4 »

beiti hat geschrieben: ↑So 01 Apr, 2018 10:55 Ich hatte es zuvor auch schon mit AVISource probiert. Das macht keinen Unterschied. (DirectShowSource war eigentlich nur einer meiner hilflosen Versuche, dem Problem auf die Spur zu kommen.)
wie gesagt, bei den avsynth bzw. windows spezifischen details kann und will ich ohnehin nicht unbedingt mitreden können... ;)
beiti hat geschrieben: ↑So 01 Apr, 2018 10:55 Die Fehlermeldung kann ich posten. Die ist nach meiner Einschätzung allerdings irreführend und hat mit dem eigentlichen Problem nichts zu tun (das kenne ich noch aus früheren Fehlversuchen mit AviSynth).

Wenn ich die Zeile "AssumeTFF" weglasse, kommt nämlich Folgendes:
Avisynth open failure:
Script error: Invalid arguments to funktion "MSuper"
(F:\fps_interpolieren_boccia2.avs, line 25)

Was hier mit "line 25" gemeint ist (also wie das Programm die Zeilen im Script zählt), ist nicht ganz klar. Nach meiner Zählung ist Zeile 25 eine von denen, die mit # beginnen und daher nicht relevant sind. (Mein Originalscript enthält jede Menge Kommentare mit # davor.)
normalerweise sollte ein derartig formatierte felermeldung sich schon auf die betroffene zeile im explizit angegebenen source file beziehen.

ich würde aber im gegeben fall und der etwas eigenwilligen und nicht immer sonderlich sauberen arbeitsweise von avisynth evtl. auch überprüfen, ob hier nicht probleme innerhalb eines aufgerufenen weiteren scripts bzw. einer verschachtelung vorliegen -- was ich allerdings deinem script auf den ersten blick nicht entnehmen kann -- , die zu einer derart irrtümlichen ausgabe führen.

ähnliche -- oft python basierende -- systeme, liefern hier gewöhnlich eher eine fehlermeldung, die gleich den ganzen stapel der verschachtelungen bzw. relevanten stellen in den source files erkennen lassen.
beiti hat geschrieben: ↑So 01 Apr, 2018 10:55 Ich denke, die Fehlermeldung bezieht sich auf die einzige Zeile, in der der Begriff "MSuper" überhaupt vorkommt:
superclip = MSuper(pel=2)
das würde ich auch so sehen.
evtl. könnte es sich aber in deiner tatsächlich gerade genutzten MVTools version irgendwas bzgl. der parameterübergabe geändert haben?
gefühlsmäßig würde ich aber auch eher irgendwas im datenfluss davor für verantwortlich halten....

"pel=2" ist hier jedenfalls tatsächlich auch der default-wert, den man ohnehin weglassen könnte.

ja -- es hat schon seine gründe, warum es nicht mehr so viele liebhaber von avisynth und dessen geheimnissen gibt ;)



beiti
Beiträge: 5203

Re: Kleines AviSynth-Problem

Beitrag von beiti »

mash_gh4 hat geschrieben: ↑So 01 Apr, 2018 11:55 normalerweise sollte ein derartig formatierte felermeldung sich schon auf die betroffene zeile im explizit angegebenen source file beziehen.
Ich habe mein Script mal auf das Nötige zusammengestaucht, also Leerzeilen und Kommentare weggelassen:

Code: Alles auswählen

ausgangsclip = AVISource("F:\boccia2-18.avi")
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\mvtools2.dll")
superclip = MSuper(pel=2)
vektorclip_rueckw = MAnalyse(superclip, overlap=0, isb = true, search=4)
vektorclip_vorw = MAnalyse(superclip, overlap=0, isb = false, search=4)
MFlowFps(ausgangsclip, superclip, vektorclip_rueckw, vektorclip_vorw, num=60000, den=1001)
An der Fehlermeldung ändert das nichts - außer, dass jetzt die korrekte Zeile mit dem MSuper-Befehl (line 3) genannt wird. Wahrscheinlich war in der kommentierten Version mit der Zeilenzahl was durcheinandergekommen.
ob hier nicht probleme innerhalb eines aufgerufenen weiteren scripts bzw. einer verschachtelung vorliegen
Verschachtelt habe ich nichts.
evtl. könnte es sich aber in deiner tatsächlich gerade genutzten MVTools version irgendwas bzgl. der parameterübergabe geändert haben?
Das oben gezeigte, verkürzte Script habe ich gerade exakt so getestet. Mit demselben Ergebnis (Fehlermeldung) wie vorher.
es hat schon seine gründe, warum es nicht mehr so viele liebhaber von avisynth und dessen geheimnissen gibt ;)
Schwer vorstellbar, dass es die überhaupt mal gab. :)
Interessantes rund um die Foto- und Videotechnik - fotovideotec.de
Der FotoVideoTec-Blog - fotovideotec-blog.de
Alles über Satellitenempfang - satellitenempfang.info



beiti
Beiträge: 5203

Re: Kleines AviSynth-Problem

Beitrag von beiti »

Okay, jetzt bin ich auf was Interessantes gestoßen.
Es funktioniert auch, wenn ich statt "AssumeTFF" folgende Zeile reinmache:
ConvertToYUY2 (ausgangsclip)
Interessantes rund um die Foto- und Videotechnik - fotovideotec.de
Der FotoVideoTec-Blog - fotovideotec-blog.de
Alles über Satellitenempfang - satellitenempfang.info



mash_gh4
Beiträge: 4716

Re: Kleines AviSynth-Problem

Beitrag von mash_gh4 »

beiti hat geschrieben: ↑So 01 Apr, 2018 12:42 Okay, jetzt bin ich auf was Interessantes gestoßen.
Es funktioniert auch, wenn ich statt "AssumeTFF" folgende Zeile reinmache:
ConvertToYUY2 (ausgangsclip)
prima! -- dann erspare ich mir, dir zu schreiben, wie man genau das selbe mit VapourSynth in analoger, aber eben plattformübergreifender, weise realisieren könnte.

genau diese kleinen details, wie unklarheiten bzgl. des tatsächliche benutzte pixelformats, sind es, die AviSynth so unglaublich problematisch erscheinen lassen. es hat zwar natürlich auch seine vorteile, dass das dort alles derart primitiv und minimalistisch gelöst ist, man also nicht, wie bspw. bei OpenFX, extrem viel umgebenden verwaltungscode schreiben muss, um auch nur die einfachsten operationen am bild tatsächlich in code umzusetzten, aber das bringt eben auch genau solche folgen mit sich.

wenn man schon mühen auf solche sache verschwenden muss, ist es daher meist zielführender, wenn man gleich zu zeitgemäßeren professionellen lösungen greift. z.b. könntest du ja mit den konos-nodes im nuke [non-commercial] genau das selbe wie mit diesem script bewerkstelligen -- nur eben technisch deutlich befriedigender.



beiti
Beiträge: 5203

Re: Kleines AviSynth-Problem

Beitrag von beiti »

mash_gh4 hat geschrieben: ↑So 01 Apr, 2018 13:31 wie man genau das selbe mit VapourSynth in analoger, aber eben plattformübergreifender, weise realisieren könnte.
Prinzipiell würde mich das schon interessieren, da VapourSynth auch wesentlich schneller sein soll. Hab mich da aber bisher nicht rangetraut, weil die Scripte wieder ganz anders aufgebaut sein müssen (und ich hatte schon mit AviSynth genug zu kämpfen).
wenn man schon mühen auf solche sache verschwenden muss
"Müssen" tu ich das zum Glück nicht. ;) Aber es gibt eben einige Bereiche, wo Frameraten-Interpolation interessante Möglichkeiten eröffnet.

Vor ein paar Jahren hatte ich mich daran versucht, weil ich 50i-Videos für die US-Verwandtschaft konvertieren musste und im Ergebnis möglichst geschmeidige Bewegungen erhalten wollte. Das kriege ich inzwischen auch gut hin.

Aktuell geht es um die Nachbearbeitung von frisch digitalisiertem Super-8-Material, dem ich zu etwas flüssigerer Bewegung verhelfen will. Das ist allerdings nicht so einfach wie im Fall des digital gefilmten Ausgangsmaterials, weil das Super-8-Material naturgemäß unscharf und körnig ist und zudem einen schlechten Bildstand hat. Dort, wo vom Stativ gefilmt wurde, klappt die MVTools-Methode erstaunlich gut und verhilft den alten Aufnahmen zu neuen Qualitäten. Aber sobald die Kamera wackelt oder schnell schwenkt, treten unschöne Nebeneffekte auf; ich kann also nicht einfach das ganze Material unbesehen so verarbeiten.
Von daher könnten mich (bessere) Alternativen zu MVTools durchaus interessieren.
z.b. könntest du ja mit den konos-nodes im nuke [non-commercial] genau das selbe wie mit diesem script bewerkstelligen -- nur eben technisch deutlich befriedigender.
Das ist bestimmt interessant und wäre einen Versuch wert. Muss ich schauen, ob ich mich mal aufraffen kann, mich da reinzufuchsen; Nuke ist halt eine professionelle Software, in der man vermutlich nicht mal schnell mit ein paar Klicks was zustande bringt...
Interessantes rund um die Foto- und Videotechnik - fotovideotec.de
Der FotoVideoTec-Blog - fotovideotec-blog.de
Alles über Satellitenempfang - satellitenempfang.info



 Aktuelle Beiträge [alle Foren]
 
» AV1 Codec in Premiere
von Bluboy - Do 19:19
» Sigma 17-40mm F1.8 DC ART an Sony FX30 und DJI RS4 Mini im Praxistest / Teil 1
von rush - Do 17:46
» Nanlite pico - neues, kompaktes Vollfarben-LED-Panel für die mobile Videoproduktion
von Alex - Do 17:02
» Neu in Adobe Firefly - Sound Effects, Kompositionsvorlagen und mehr
von slashCAM - Do 15:36
» ACHTUNG WETRANSFER!
von rush - Do 14:02
» DaVinci Resolve 20 Workshop - AI Depth Map unkompliziert für Titel-Effekte nutzen
von speedy gonzales - Do 13:58
» DJI Mavic 4 Pro in der Praxis: 10Bit 6K 50p Log, 360° Gimbal – für wen lohnt sich die C2 Drohne?
von wind1414 - Do 10:28
» Neue Lexar NM990 PCIe 5.0 SSD liest Daten mit bis zu 14.000 MB/s
von slashCAM - Do 10:24
» DJIs Mic 3 Funkmikro kommt bald zusammen mit der Osmo 360 Kamera
von tom - Do 10:10
» Panasonic LUMIX S1II im Praxistest: Beste Video-DSLM ihrer Klasse Dank 5.1K Open Gate u. hohem DR?
von radneuerfinder - Mi 23:20
» Sony ECM-778 - neues XLR-Richtmikrofon mit Hi-Res Audio für Profis
von TomStg - Mi 19:39
» Biete: Tascam DR-10C Mini Rekorder
von pillepalle - Mi 18:17
» Biete: Fuji X-E1 Body - 16,3MP APS-C
von pillepalle - Mi 18:10
» Nikon Z f Vollformat DSLM im Retro-Look (FM2) für 2.499,- Euro vorgestellt: 24MP Sensor, 4K 10 Bit 60p Â…
von Funless - Mi 16:36
» Neue Nikon Z8 Firmware 3.01 soll Objektiv-Kompatibilität verbessern
von slashCAM - Mi 15:21
» Konkurrenz für IMAX - Neues HDR-Premiumkinoformat Vue Epic für Europa
von dienstag_01 - Mi 14:13
» Panasonic LUMIX S1II und S1IIE für Videofilmer - bis zu 15 Blendenstufen und ARRI Log
von roki100 - Mi 12:44
» Zwei leichte Samyang Prima-Objektive (16mm / 85mm) für Sony E vorgestellt
von slashCAM - Mi 10:12
» RØDE Wireless Micro: Ab sofort auch kabellose iPhone-Aufnahme ohne Empfänger
von Blackbox - Di 17:46
» Zoom M3 Mictrak Erfahrungen?
von Jörg - Di 15:46
» Social Media, KI & Co. - Neue Gefährdungslagen für die Meinungsvielfalt
von Blackbox - Di 15:46
» Zittern mit 50fps Clip in 25fps Timeline
von blueplanet - Di 13:14
» "32 Bit float" Recording - Ist das wirklich besser?
von ksingle - Di 12:37
» Neue Dummy-Adapter von SWIT für NP-F-, LP-E6- und NP-FZ100-Akkus
von Blackbox - Di 2:37
» LensNode Plug-In
von j.t.jefferson - Mo 22:36
» 15.000 Euro - welche Kamera
von pillepalle - Mo 21:04
» Kamera- & Objektivangebote: Bis zu 1.000€ Rabatt bei Nikon, Canon & Co
von slashCAM - Mo 16:12
» Tarifvertrag zum Einsatz von KI
von ruessel - Mo 10:20
» 4.000 Komparsen für "Tribute von Panem" gesucht
von philr - So 11:14
» Gurkenauslöser
von Jott - Sa 21:55
» Blackmagic Updates für Cloud Store, Video Assist und BRAW
von Rick SSon - Sa 13:34
» Amazon Prime Day - ausgewählte Schnäppchen für Video, Foto & Co.
von GaToR-BN - Fr 12:57
» Nextorage cf-express Type a Erfahrung
von MuffinOne - Mi 23:26
» Wie Hitchcock mit Psycho nicht nur den Horror, sondern den Kinobesuch veränderte
von 7River - Mi 20:10
» Nikon Z6 III - Sensor-Bildqualität, Rolling Shutter, Dynamik - Günstige Z8 für Filmer?
von blueplanet - Mi 14:10