Postproduktion allgemein Forum



Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth



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

Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von beiti »

Ich hatte hier im Forum schon mal nach fertigen AVISynth-Scripts gefragt, mit denen man Videos einer Frame-Interpolation unterziehen kann. Leider ist damals die Diskussion etwas abgedriftet, und es blieben viele Fragen offen.

Anlässlich der Aufrüstung meines Rechners habe ich mir jetzt mal die Zeit genommen, etwas tiefer in AviSynth (samt MVTools und Yadif) und VirtualDubMod einzusteigen. Dabei ist ein Script entstanden, mit dessen Ergebnissen ich schon recht zufrieden bin, und das ich zur Diskussion stellen will.

Ziel des Scripts ist, wie schon im letzten Thread erläutert, die Änderung der Framerate durch möglichst saubere Zwischenbildberechnung.

Mein Hauptanliegen ist das Wandeln meiner 1080/50i-Videos nach 1080/60i oder 720/60p als Blu-ray für die amerikanische Verwandtschaft, aber natürlich kann man das Script auch für andere Wandlungen, Zeitlupen, Bewegungsglättung etc. verwenden.

Ein gewisses Problem bleibt der Zeitaufwand. So, wie das Script jetzt ist, benötigt es auf meinem neuen i5-System das 12,8-Fache der Spielzeit an Berechnungszeit. Das ist nicht gerade ideal, aber für meinen gelegentlichen Bedarf tragbar.
Ich hatte noch mit anderen Einstellungen aus der MVTools-Anleitung experimentiert, die angeblich noch feinere Ergebnisse versprechen, aber dann stieg der Zeitaufwand auf das 28,2-Fache. Dabei konnte ich die Qualitätsverbesserung nicht mal eindeutig verifizieren; manche Details wurden zwar feiner aufgelöst, aber an einigen Stellen wurde das Ergebnis sogar schlechter.

Da mein Ausgangsmaterial halbbildbasiert (interlaced) ist und MVTools für die Zwischenbildberechnung Vollbilder braucht, habe ich noch das Yadif-Plugin eingebunden, um ein "SmartBobbing" voranzuschalten. Wer mit p-Formaten filmt, kann das natürlich weglassen.
Das Ergebnis hat auf jeden Fall Vollbilder. Ich habe mir gespart, mittels AviSynth auch noch ein Interlacing oder eine Reduktion auf 720er-Auflösung (eins von beiden ist nötig, wenn man auf Blu-ray brennen will) einzubauen, weil das mein Schnittprogramm selber kann.

Hier nun also das Script (mit Erläuterungen):

Code: Alles auswählen

# Umrechnung von HD-Video in andere Frameraten - Script von beiti
# Das Script Benötigt die AviSynth-PlugIns MVTools2
# und (falls das Ausgangsvideo interlaced ist) Yadif
# ---------------------------------------------------------------


# Import einer AVI-Dateiei; alternativ z. B. DirectShowSource-Befehl
# für andere Formate (nicht getestet)
# In Klammern und Anführungszeichen muss statt XXXXX der
# vollständige Pfad zum Ausgangsvideo stehen
# z. B. AVISource ("E:\videos\ausgangsvideoclip.avi")
AVISource("XXXXX\ausgangsvideoclip.avi")

# Folgende drei Zeilen bewirken ein Smart-Bobbing
# (z. B. aus 50 Halbbildern werden 50 Vollbilder ohne Zeilenflimmern)
# Dieser Schritt ist nur für Interlaced-Ausgangsvideo nötig -
# sonst bitte löschen oder # vor jede Zeile stellen
# Statt XXXXX muss der vollständige Pfad zu yadif.dll stehen.
# Falls andere Halbbilddominanz, lautet zweite Zeile: AssumeBFF
Load_Stdcall_plugin("XXXXX\yadif.dll")
AssumeTFF
Yadif(Mode=1)

# Laden des MVTools2-PlugIn. Für XXXXX bitte den Pfad zum PlugIn einsetzen.
# Die Zeile kann wegfallen, wenn mvtools2.dll direkt im PlugIn-Ordner
# von AviSynth steht
LoadPlugin("XXXXX\mvtools2.dll")

# Erstellung temporärer Clips: Super-Clip und Vektoren-Clips
# (nötig für spätere Berechnungen)
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 NTSC-basierte "krumme" Frameraten gilt
# num=[glatte Framerate]*1000 und den=1001
# (z. B. num=24000 und den=1001 entspricht 23,97 fps)
# Für glatte Frameraten (PAL-basiert, 24,00 oder 30,00 fps) gilt
# num=[framerate] und den=1
# (z. B. num=25 und den=1)
# Hier voreingestellt sind 59,94 fps für NTSC-basierte Formate
MFlowFps(superclip, vektorclip_rueckw, vektorclip_vorw, num=60000, den=1001)
Hier nochmal in nackt für die Profis:

Code: Alles auswählen

AVISource("XXXXX\ausgangsvideoclip.avi")

Load_Stdcall_plugin("XXXXX\yadif.dll")
AssumeTFF
Yadif(Mode=1)

LoadPlugin("XXXXX\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(superclip, vektorclip_rueckw, vektorclip_vorw, num=60000, den=1001)
Und nun zur Qualitätsbeurteilung anhand echter Videos. Die folgenden gut 1-minütigen Testclip-Zusammenstellungen liegen in 1080/50i bzw. 1080/60i und MP4/H.264 vor. Am besten schaut man sie mit einem Medienplayer am Fernseher an - wobei natürlich der Ausgang passend zur Framerate eingestellt sein sollte.

Das Endprodukt ist passend für amerikanische Blu-rays nun auf 1080/60i getrimmt:
Testclip Frame-interpoliert mittels AviSynth, Yadif, MVTools

Und hier zum Vergleich eine Wandlung mit den Bordmitteln von Edius:
Testclip mittels Frameblending in Edius normgewandelt

Falls jemand als Vergleich das Original sehen möchte:
Originalclip in 1080/50i

Die Frameblending-Variante aus Edius zeigt deutliches Ruckeln, sobald sich im Bild etwas schneller bewegt. Außerdem kommt sie mir etwas weniger scharf vor.
Die AviSynth-Variante läuft weitgehend flüssig, und die Interpolations-Artefakte sind beim normalen Anschauen selbst mit dem Wissen, wo sie stecken, kaum auszumachen. Natürlich kann ich nicht ausschließen, dass es andere/kritischere Videos gibt, die Artefakte hervorrufen würden. Wer hiermit Erfahrungen hat, möge dies kundtun (oder gleich mein Script an eigenem Material testen).

Hier noch der Vollständigkeit halber zwei Beispiele für typische Artefakte, die man beim einzelbildweisen Durchschalten erkennen kann (es sind jeweils 100-%-Crops aus dem Video):
Bild
Bild



MLJ
Beiträge: 2193

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von MLJ »

@beiti
nicht schlecht, aber warum so umständlich ? In welchem Format (Farbraum) liegt dein Material vor ? RGB32/RGB24/YUY2/YV12 ? Damit YV12 funktioniert mit AviSynth brauchst du mindestens XviD an Board weil AviSynth KEINE eigenen Codecs mitbringt. Für YUY2 brauchst du entweder "msyuv.dll" von DirectX oder besser HuffYUV, allerdings nur für 32 Bit Systeme. HuffYUV ist deswegen so genial, da es die Wandlung von RGB -> YUY2 für AviSynth vornimmt. Und warum "AviSource" ? Mit der "DirectShow" bist du um einiges flotter unterwegs.

Sei bitte so gut und stelle mal die genauen Daten für dein Material hier rein, also von dem Quellmaterial.

Video Format (verwendeter Codec und Farbraum)
Quell FPS - Ziel FPS
Inter - oder Intra Frame (Quellmaterial)
Audio Format (VBR oder CBR)

Hast du den Script Editor von VirtualDubMod benutzt oder das Script von Hand geschrieben ? Wenn du den Script Editor von VDubMod nimmst, dann zeigt er gleich ob sich Fehler darin eingeschlichen haben.

Wenn ich eine Normwandlung vornehme mit VDubMod, dann nehme ich einen Lossless Codec (hier HuffYUV in YUY2) und PCM Audio, das ganze über die DirectShow Schnittstelle mit den entsprechenden Parametern und über VDubMod neu rausgeben. Das ganze geht ratz-fatz und ohne große Warterei.

Im übrigen noch etwas wichtiges: In VirtualDub ist Top Field/Bottom Field verdreht, also "Top Field" ist "Odd" und "Bottom Field" ist "Even", bei AviSynth scheint der gleiche Fehler zu sein, aber das teste ich noch ausgiebiger. Ich habe noch nicht alle Tests mit AviSynth (Versionen 2.56/2.58) gemacht, aber die ersten Anzeichen deuten darauf hin, das es hier auch verdreht wurde.

Siehe hier:
http://forum.slashcam.de/viewtopic.php?t=112658

Cheers, Mickey.
The little Fox.... May U live 2 C the Dawn



beiti
Beiträge: 5151

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von beiti »

MLJ hat geschrieben: aber warum so umständlich ?
Was genau ist umständlich?
Damit YV12 funktioniert mit AviSynth brauchst du mindestens XviD an Board weil AviSynth KEINE eigenen Codecs mitbringt. Für YUY2 brauchst du entweder "msyuv.dll" von DirectX oder besser HuffYUV, allerdings nur für 32 Bit Systeme. HuffYUV ist deswegen so genial, da es die Wandlung von RGB -> YUY2 für AviSynth vornimmt.
Wieso brauche ich das alles? Was stimmt nicht mit meiner Methode?
Und warum "AviSource" ? Mit der "DirectShow" bist du um einiges flotter unterwegs.
Muss ich mal probieren. Ich hatte mich an den Reference Guide gehalten, der sagt, man solle DirectShowSource nur nehmen, wenn AviSource nicht funktioniert.
Sei bitte so gut und stelle mal die genauen Daten für dein Material hier rein, also von dem Quellmaterial.

Video Format (verwendeter Codec und Farbraum)
Quell FPS - Ziel FPS
Inter - oder Intra Frame (Quellmaterial)
Audio Format (VBR oder CBR)
Es handelt sich ursprünglich um AVCHD-Material (1080/50i), aber nach dem Schnitt gebe ich es mit Edius Neo als Canopus-HQ aus - und das ist dann mein Eingangsformat für das AviSynth-Script.
Hast du den Script Editor von VirtualDubMod benutzt oder das Script von Hand geschrieben ? Wenn du den Script Editor von VDubMod nimmst, dann zeigt er gleich ob sich Fehler darin eingeschlichen haben.
Allerdings stürzt mir VirtualDubMod immer komplett ab, wenn ich auf "Save & Refresh" klicke und auch nur der kleinste Fehler im Script ist. Wenn ich das Script hingegen normal mit VirtualDubMod öffne, bekomme ich eine schöne Fehlermeldung, die mir weiterhilft.
In VirtualDub ist Top Field/Bottom Field verdreht, also "Top Field" ist "Odd" und "Bottom Field" ist "Even"
Hab ich nicht näher untersucht.
In meinen Versuchen war es jedenfalls so, dass die Halbbildreihenfolge der Ausgangsclips in Yadif falsch angekommen ist, weshalb ich noch AssumeTFF eingefügt habe (und jetzt passt es).



MLJ
Beiträge: 2193

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von MLJ »

Hallo beiti,
also, mit der DirectShow Schnittstelle kannst du die Parameter für Framerate und Farbraum direkt vorgeben.

Beispiel:
DirectShow #####.avi, fps=60.000, convertfps=true, pixel_type="RGB24"

Jetzt brauchst du nur noch "AssumeTFF" und die neue Framerate einzufügen via "ConvertFPS" und das ganze an VDubMod zu übergeben. Wichtig ist, das du entweder den Farbraum RGB32, RGB24, YUY2 (msyuv.dll/HufffYUV.dll) oder YV12 (XviD) verwendest da alle anderen Farbräume NICHT verwendet werden und es zu einem unschönen Chroma-Upsampling kommt.

Beispiel: Dein Codec liefert I420 am Ausgang und AviSynth macht daraus YV12, vertauscht also die Chroma Werte oder gibt es als RGB24 raus wenn XviD nicht installiert ist.

Wichtige Anmerkung: Es ist übgrigens KEINE gute Idee XviD UND DivX zu installieren, da DivX ein System sehr schnell instabil macht, indem etliche Farbräume an DivX und nicht an die ursprünglichen Codecs geleitet werden. XviD tut das nicht und stellt nur fehlende Farbräume (YV12 z.B.) dem System zur Verfügung und klinkt sich aus wenn ein anderer Codec YV12 verarbeitet.

"msyuv.dll" ist Bestandteil von DirectX und das solltest du auf jeden Fall auf deinem System haben. Der Nachteil von "msyuv.dll" ist, das er die Farbräume UYVY, YUY2 und YVYU verarbeitet, aber leider nicht sehr gut und bei Interlaced Material die Frames "Blendet", also nicht sauber differenziert. "HuffYUV" hingegen verarbeitet die gleichen Farbräume und kann mit Interlaced sehr gut umgehen, ist allerdings für 64 Bit Systeme nicht geeignet.

Abhilfe: Verwende RGB24 und PCM für Audio, 1:1 Interleaved (Every 1 Frame), damit hast du keine Probleme und VDubMod schmiert dir nicht mehr ab, da VDubMod von Haus aus RGB24, besser RGB32 bevorzugt, was auch die Abarbeitung der Filter beschleunigt, die werden immer in RGB32 ausgeführt (!).

Welchen Farbraum liefert der Canopus-HQ Codec ? YUY2 ? RGB ? Wenn der auch RGB liefert, dann solltest du in der Eingabe "pixel_type" einfügen und auf "RGB24" setzen. Eine Konvertierung von RGB zu YUY2 würde keinen Sinn machen und alle Filter funktionieren auch mit RGB24 in AviSynth. Ein weiterer Vorteil ist, wenn du Intra Frames und keine Inter Frames verwendest, also Key-Frame only, dann beschleunigt sich das ganze noch einmal.

Alternative Codecs für 64 Bit Systeme: Lagarith und Ut-Video.

Das die Fields vertauscht sind in diversen Plugins für AviSynth (hier Yadif) habe ich schon im Visier da sich wohl alle an den Angaben in VirtualDub orientiert haben, wo alles verdreht ist.

Medias Res: Von welchem Format willst du konkret zu welchem umwandeln ? (Frameraten) Im Übrigen funktioniert AviSynth auch mit jeder anderen VirtualDub Version, auch den "Clones" und 64 Bit Versionen ;) Du musst dich also nicht unbedingt mit VDubMod abquälen, nur so nebenbei :)

Cheers, Mickey.
The little Fox.... May U live 2 C the Dawn



Alf_300
Beiträge: 8011

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von Alf_300 »

@MLJ

In der US-amerikanischen Fernsehnorm 480i/29,97 liegen die Zeilen des zweiten Halbbilds über denen des ersten Halbbilds, in der europäischen Norm 576i/25 ist dies genau umgekehrt

Wenn man wie so Viele US Programme und Presets benutzt obwohl bekannt ist dass sich die Ami's keinen Deut um Andere scheren, dann ist das kein Bug sondern vielleicht nur NTSC Norn im PAL-Land benutzt ;-)



MLJ
Beiträge: 2193

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von MLJ »

@Alf_300
Das die Amis sich nicht um andere scheren, nun ja, mag sein, aber merkwürdiger Weise wurde beim DV-SD Format kein Unterschied mehr gemacht, egal ob PAL oder NTSC, beides "Unteres Halbbild zuerst". Und bei den heutigen HD Formaten hat man sich auf "Oberes Halbbild zuerst" geeinigt, egal ob NTSC oder PAL ;)

Wie "WoWu" schon einmal angemerkt hatte (Wo steckt der eigentlich ?) gab es da nie wirkliche Standards, nur "Richtlinien" und entsprechend fiel die Verwirrung darüber aus was die korrekte Halbbildreihenfolge betrifft :) Damit ist es also kein "Bug" im PAL Land :)

Cheers, Mickey.
The little Fox.... May U live 2 C the Dawn



beiti
Beiträge: 5151

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von beiti »

MLJ hat geschrieben:also, mit der DirectShow Schnittstelle kannst du die Parameter für Framerate und Farbraum direkt vorgeben. [...]
Jetzt brauchst du nur noch "AssumeTFF" und die neue Framerate einzufügen via "ConvertFPS" und das ganze an VDubMod zu übergeben.
Das klingt jetzt nicht, als hätte ich dann noch viel Kontrolle übers Ergebnis. Ich dachte, wenn man echte Frame-Interpolation will, führt kein Weg an MVTools vorbei?!
"msyuv.dll" ist Bestandteil von DirectX und das solltest du auf jeden Fall auf deinem System haben. Der Nachteil von "msyuv.dll" ist, das er die Farbräume UYVY, YUY2 und YVYU verarbeitet, aber leider nicht sehr gut und bei Interlaced Material die Frames "Blendet", also nicht sauber differenziert. "HuffYUV" hingegen verarbeitet die gleichen Farbräume und kann mit Interlaced sehr gut umgehen, ist allerdings für 64 Bit Systeme nicht geeignet.
Vielleicht stehe ich jetzt auf dem Schlauch, aber worauf beziehen sich diese Anforderungen? Auf die Eingabe mittels DirectShowSource, auf die eigentliche FPS-Umrechnung oder nur auf die Ausgabe?
Welchen Farbraum liefert der Canopus-HQ Codec ? YUY2 ? RGB ?
Es ist ein Intermediate-Codec, daher nehme ich an, dass er den Farbraum des AVCHD-Ursprungsmaterials nicht verändert. Und das dürfte YUY2 sein!? Ich kenn mich da, ehrlich gesagt, nicht so aus.
Kann man das irgendwo ersehen, z. B. mit MediaInfo? Hab dort keinen Eintrag zum Farbraum gefunden.



MLJ
Beiträge: 2193

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von MLJ »

@beiti
die Datei "msyuv.dll" ist für den Farbraum UYVY, YUY2 und YVYU unter Windows (alle Versionen) zuständig und ist Bestandteil von DirectX. Ohne diese Datei könnte AviSynth kein YUY2 ausgeben. Die Kontrolle hast du ja über das Script und definierst über DirectShowSource den kürzesten Weg, da hier schon vieles drin ist, was weitere Plugins unnötig macht.

Ob dein Film gleich in YUY2 übergeben wird kannst du ganz einfach feststellen: Öffne VirtualDubMod und wähle den Film an. Bevor du nun auf "Open" gehst wählst du unten einfach "DirectShowSource" an, dann erstellt VirtualDubMod automatisch ein Script in dem Verzeichnis und ruft AviSynth auf. Nun brauchst du nach dem Laden nur noch auf "File Information" gehen um zu sehen, was AviSynth als Farbraum verwendet.

Hier gibt es nur 4 Möglichkeiten:
RGB32, RGB24, YUY2 oder YV12. Audio ist automatisch PCM über AviSynth.

AviSynth wurde so konzipiert, das es im Grunde mit 2 zusätzlichen Codecs auskommt: HuffYUV und XviD. Entsprechend ist es darauf ausgelegt und da diese beiden Codecs auch heute noch eine weite Verbreitung haben hat sich daran nichts geändert. Ist also weder HuffYUV oder XviD auf deinem System, wird für YUY2 die msyuv genommen.

"Früher" hat man mit HuffYUV aufgenommen und dann mit XviD den fertigen Film erstellt. Zum einen wegen der Qualität, zum anderen wegen der Geschwindigkeit und Kompatibilität zu AviSynth. Der Autor von AviSynth hat auch HuffYUV in's Leben gerufen und XviD, wie Cedocida auch, verwenden Routinen aus HuffYUV ;)

Die msyuv wurde mehrmals aktualisiert und ist erst seit der DirectX Version 9c (904) richtig stabil, davor gab es immer wieder Probleme mit dem richtigen dekodieren der Chroma Anteile (Shifts), was bei HuffYUV nicht der Fall ist.

Intermediate funktioniert zwar auch, aber mit einem Intra Codec verschenkst du keine Leistung wenn du über AviSynth gehst und eine Normwandlung funktioniert reibungsloser. Mit einem Intermediate Codec verschenkst du etwa 40% Leistung über AviSynth.

Cheers, Mickey.
The little Fox.... May U live 2 C the Dawn



beiti
Beiträge: 5151

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von beiti »

MLJ hat geschrieben: Ob dein Film gleich in YUY2 übergeben wird kannst du ganz einfach feststellen: [...]
Danke für den Hinweis. Jetzt ist es eindeutig YUY2, siehe Screenshot.
Die msyuv wurde mehrmals aktualisiert und ist erst seit der DirectX Version 9c (904) richtig stabil,
Dann wird sie bei mir wohl verwendet, da ich sonst nichts installiert habe.
Intermediate funktioniert zwar auch, aber mit einem Intra Codec verschenkst du keine Leistung wenn du über AviSynth gehst und eine Normwandlung funktioniert reibungsloser. Mit einem Intermediate Codec verschenkst du etwa 40% Leistung über AviSynth.
Ich muss ja mit irgendeinem Format aus dem Schnittprogramm (Edius Neo) raus, und das geht mit Canopus HQ (was intern auch Renderformat von Edius Neo ist) am schnellsten.
Welches Format ich dann aus VirtualDub ausgebe, ist wieder eine andere Frage.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.



MLJ
Beiträge: 2193

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von MLJ »

@beiti,
dann hast du ja schon einmal die halbe Miete ;) AviSynth übergibt übrigens immer das Material als Intraframe/PCM an VirtualDubMod. Ein AviSynth Script kannst du übrigens auch in den meisten Programmen direkt laden, wenn du auf "Alle Dateien" gehst, das konnte schon der Windows Mediaplayer. So kannst du die Scripts von AviSynth gleich im Player testen ;)

Medias Res: Du möchtest also dein Interlaced PAL Material in NTSC mit AviSynth wandeln, richtig ? Wenn NTSC: Oberes Halbbild zuerst nach HD Standard, oder ? Dein Ausgangsmaterial ist H264 (AVCHD) ? Audio AAC ? PCM ? AC3 ?

Was wichtig wäre, welchen Frame-Interleave verwendest du in Edius ? So wie in VirtualDubMod 1:1 (Every 1 Frame) ? Intra Frame jede 1 Sekunde (25 Frames) ? Jede 10 Sekunden (250 Frames) ? Audio Preload ? 500ms ? Diese Angaben bräuchte ich damit ich dir ein zuverlässiges Script hier reinstellen kann, damit Video und Audio zusammen bleiben (Synchron).

Cheers, Mickey.
The little Fox.... May U live 2 C the Dawn



beiti
Beiträge: 5151

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von beiti »

MLJ hat geschrieben: Was wichtig wäre, welchen Frame-Interleave verwendest du in Edius ? So wie in VirtualDubMod 1:1 (Every 1 Frame) ? Intra Frame jede 1 Sekunde (25 Frames) ? Jede 10 Sekunden (250 Frames) ? Audio Preload ? 500ms ? Diese Angaben bräuchte ich damit ich dir ein zuverlässiges Script hier reinstellen kann, damit Video und Audio zusammen bleiben (Synchron).
Da bin ich jetzt echt überfragt. Mit meiner o. g. Methode musste ich das alles nicht wissen, und asynchron war trotzdem nichts. ;)
Würde es helfen, einen Schnipsel von dem Videomaterial (so, wie ich es als Ausgang für die Normwandlung verwende) zu haben? Hier habe ich ein ganz kleines Stück (3 Sekunden) hochgeladen.

Wobei ich eigentlich schon eine Methode suche, die ich variabel anwenden kann, also über den derzeitigen Wunsch hinaus (z. B. für andere Normwandlungen oder Zeitlupen). Wenn ich dann jedesmal erst Anpassungen des Scripts vornehmen muss, um die Eigenheiten des Ausgangsmaterials zu kompensieren, wird das umständlich.



MLJ
Beiträge: 2193

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von MLJ »

@beiti
also, wenn du z.B. deinen Film direkt in VirtualDubMod lädst, dann brauchst du nur auf den Button für "Next Keyframe" klicken, dann weißt du ob du jede Sekunde einen Keyframe (Bei Frame 25) hast oder alle 10 Sekunden (Bei Frame 250). Ich bevorzuge die 1-Sekunden Variante, da man den Film besser konsumieren kann wenn man vor- oder zurückspult.

Ich werde mal ein Script für dich testen und es dann hier reinstellen, von PAL zu NTSC, jeweils Interlaced, dann kannst du den Rest leicht selbst modifizieren nach deinen Bedürfnissen ;) Ein neues Script wirst du in jedem Fall immer wieder brauchen, je nachdem was du machen möchtest, da gibt es nichts nach dem Motto "One fits all", leider.

Cheers, Mickey.

P.S.: Kannst du mal einen Screenshot von dem Fenster machen, wo du in Edius die AVI Optionen einstellen kannst für den Export ? Dann kann ich dir sagen, ob das AV 1:1 Interleave überhaupt bei dir möglich ist.
The little Fox.... May U live 2 C the Dawn



beiti
Beiträge: 5151

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von beiti »

MLJ hat geschrieben:@beiti
also, wenn du z.B. deinen Film direkt in VirtualDubMod lädst, dann brauchst du nur auf den Button für "Next Keyframe" klicken, dann weißt du ob du jede Sekunde einen Keyframe (Bei Frame 25) hast oder alle 10 Sekunden (Bei Frame 250).
Das geht Frame für Frame. Alles Andere wäre bei einem Intermediate-Codec auch nicht sinnvoll, oder?
P.S.: Kannst du mal einen Screenshot von dem Fenster machen, wo du in Edius die AVI Optionen einstellen kannst für den Export ?
Okay.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.



MLJ
Beiträge: 2193

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von MLJ »

@beiti
also, du kannst an deinem AVI-Export nicht das Einstellen, was ich meine, trotzdem kein Problem. Es geht immer "Frame für Frame" nur das manche NLE's feinere Optionen für den Export haben, wie Key Frame Intervall, Bitrate, Interleaving etc., aber wie gesagt, ist kein Problem ;)

Bei einem Intermediate Codec gibt es einen sogenannten "Key Frame Intervall", d.h. der Abstand, in dem Keyframes erzwungen werden. Bei den meisten H264 Codecs ist das alle 10 Sekunden (250 Frames bei PAL, 300 bei NTSC). Hast du also eine Sequenz mit ruhigen Szenen, dann existieren innerhalb der 10 Sekunden nur 2 Keyframes, was beim vor- und zurückspulen nicht optimal ist. Ich stelle XviD/H264 generell auf einen Key-Intervall von 1 Sekunde (25 Frames bei PAL, 30 bei NTSC) und die Dateigröße ist nur unwesentlich höher.

Cheers, Mickey.
The little Fox.... May U live 2 C the Dawn



beiti
Beiträge: 5151

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von beiti »

MLJ hat geschrieben: Bei einem Intermediate Codec gibt es einen sogenannten "Key Frame Intervall", d.h. der Abstand, in dem Keyframes erzwungen werden. [...]
Hast du also eine Sequenz mit ruhigen Szenen, dann existieren innerhalb der 10 Sekunden nur 2 Keyframes, was beim vor- und zurückspulen nicht optimal ist.
Intermediate-Codecs wie der Canopus HQ arbeiten meines Wissens immer einzelbildweise, also ähnlich wie DV oder M-JPEG. Deswegen gibt es da außer der Bitrate nicht viel einzustellen.

Wenn ich mit Edius ein Interframe-Format wie H.264 ausgebe, kann ich natürlich eine Menge Sachen einstellen (siehe Screenshot). Aber als Zwischenschritt auf dem Weg zu einer Weiterbearbeitung mittels AVISynth wäre H.264 eher unpraktisch, weil die Berechnung um ein Mehrfaches länger dauert. Mit Canopus HQ geht das hingegen ratz fatz.

Also selbst wenn die Verarbeitung in AVISynth mit einer angepassten H.264-Zuspielung etwas schneller ginge (was ich mir kaum vorstellen kann), würde ich wohl den zeitlichen Mehraufwand für die H.264-Ausgabe nicht wieder reinholen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.



MLJ
Beiträge: 2193

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von MLJ »

@beiti
was den zeitlichen Mehraufwand betrifft, da hast du Recht, würde dann keinen Sinn machen. Wenn der Canopus HQ wie DV oder M-JPEG funktioniert, dann lohnt sich das umkodieren nicht.

Probiere dieses mal aus mit AviSynth: (PAL -> NTSC)

DirectShowSource test.avi, fps=29.970, convertfps=true, pixel_type="YUY2"
BicubicResize 720x480, b=0, c=0.50

Ich habe das mit einem DV-AVI (SD PAL, 45 Minuten) getestet und die Halbbildreihenfolge blieb gleich (Unteres Halbbild zuerst) und wurde nicht de-interlaced. In VirtualDubMod konnte ich die Vorschau in Echtzeit machen ohne ruckeln und ein damit erstelltes XviD AVI dauerte knapp 10 Minuten bis es fertig war.

Viel Spaß beim testen :)

Cheers, Mickey.
The little Fox.... May U live 2 C the Dawn



beiti
Beiträge: 5151

Re: Frame-Interpolation (Normwandlung/Zeitlupe) mit AviSynth

Beitrag von beiti »

Ich habe das jetzt mal ausprobiert:

Code: Alles auswählen

DirectShowSource("XXXXX.avi", fps=29.970, convertfps=true, pixel_type="YUY2")
Den Resize-Teil habe ich weggelassen, weil es ja um HD-Video geht.

Die Umwandlung geht wirklich schnell (etwas schneller als Echtzeit). Das ist aber schon das einzig Positive dran.
Die Wandlung basiert - wie ich befürchtet hatte - auf dem Prinzip des Frame-Verdoppelns (ca. jeder fünfte Frame wird zweimal gezeigt), und das ruckelt je nach Motiv sichtbar. Diese Simpel-Normwandlung konnten schon die VHS-Normwandel-Recorder vor fünfzehn Jahren - aber es ist nicht das, was ich suche.
Mit den Halbbildern wird übrigens auch nicht korrekt umgegangen, aber das ist erst mal nebensächlich; wenn die Methode eh keine Frame-Interpolation erlaubt, ist sie für mich auch mit korrekter Halbbildverarbeitung uninteressant.



 Aktuelle Beiträge [alle Foren]
 
» Was schaust Du gerade?
von klusterdegenerierung - Sa 2:12
» Behind The Boom with Boom Operator Ken Strain | URSA Exclusive
von iasi - Sa 1:01
» Fadenvorhang animieren- wie mache ich das?
von buster007 - Fr 22:38
» Eigenes kartenspiel mit software erstellen.
von freezer - Fr 22:36
» Sendung Ersatzteile aus nicht EU Ländern nach Deutschland
von soulbrother - Fr 21:01
» Lumix S5II Bildzittern, Pulsieren
von Peter-LS - Fr 20:58
» Neues Blackmagic DaVinci Resolve 19 bringt über 100 neue Funktionen
von Frank Glencairn - Fr 20:58
» - Erfahrungsbericht - DJI Pocket 3
von Frank Glencairn - Fr 20:09
» Davinci Resolve, Color Card und Monitorkalibrierung
von Frank Glencairn - Fr 19:25
» Ich brauche dringend Teilnehmende an meiner Studie für meine Masterarbeit
von freezer - Fr 19:05
» Motor Smart: Intelligenter AutoFocus-Motor von PDMovie nutzt LiDAR und KI
von roki100 - Fr 18:04
» AMD Radeon RX 7900 GRE mit 16GB und 256 Bit - preiswerte Grafikkarte für DaVinci Resolve?
von iasi - Fr 17:27
» Videointerview mit dem eigenem KI-Zwilling
von Frank Glencairn - Fr 16:44
» Panasonic S5 - Allgemeine Fragen, Tipps und Tricks, Zeig deine Bilder/Videos usw.
von roki100 - Fr 15:16
» Flackern bei der Digitalisierung - USB Grabby
von Laboriosa - Fr 13:36
» Aktuelle rechtliche Situation für AI generierte Inhalte
von Frank Glencairn - Fr 10:57
» Kamera Kaufberatung Budget ca. 2000€
von suchor - Fr 9:47
» LVX AURORA VISTA Primes - Re-Housing und Vintage Tuning jetzt auch in Europa
von slashCAM - Fr 9:39
» Was hast Du zuletzt gekauft?
von klusterdegenerierung - Fr 7:14
» Nach 7 Jahren mit der OG BMPCC finde ich das Bild noch immer schön.
von Frank Glencairn - Fr 7:02
» Apple Vision Pro: Verkaufsstart (USA) ab Februar für 3.499,- Dollar + neuer Werbeclip
von Darth Schneider - Fr 5:57
» Linsen (Vintage, Anamorphic & Co.)
von Funless - Do 23:58
» H264 4K Minischneideprogramm Empfehlung? Freeware?
von Videopower - Do 22:31
» VideoGigaGAN - Adobe zeigt generative KI Super Resolution für Bewegtbilder
von r.p.television - Do 21:25
» Hi 8 Videos schärfer machen
von Manschy - Do 20:52
» WORKFLOW: Stockfootage & Resolve
von freezer - Do 19:20
» AMDs Notebook APU Strix Halo - besser als Apples M3 Pro Chip?
von berlin123 - Do 17:34
» AJA: ColorBox 2.1 ACES-Workflow und DRM2 für das DIT-Cart erklärt
von slashCAM - Do 15:48
» Insta360 X4 360°-Action-Kamera filmt in 8K
von -paleface- - Do 14:19
» Ambisonics in Resolve
von Axel - Do 12:09
» MP4 Video verlustfrei exportieren
von Frank Glencairn - Do 10:54
» NAB 2024 Neuigkeiten
von Frank Glencairn - Do 10:23
» Was hörst Du gerade?
von soulbrother - Do 8:55
» Blackmagic PYXIS 6K: Die Vollformat „Box“-Kamera mit Viewfinder, 2x SDI, Sideplates (!) uvm.
von cantsin - Do 8:39
» Messevideo: Atomos NINJA PHONE erklärt
von Frank Glencairn - Do 6:06