Hallo,
Ich würde gerne ein Bild vor dem Beginn des eigentlichen Hauptfilms (Avi) einfügen und 10s lang anzeigen lassen. Das Ganze noch mit FadeIn und FadeOut veredeln
Wie stellt man das an ?
Gruß Gunnar
Hallo,
Ich würde gerne ein Bild vor dem Beginn des eigentlichen Hauptfilms (Avi) einfügen und 10s lang anzeigen lassen. Das Ganze noch mit FadeIn und FadeOut veredeln
Wie stellt man das an ?
Gruß Gunnar
Unter AviSynth 2.0x kannst du nur das Plugin Image Sequence verwenden.
Ich würde dir alternativ eher empfehlen, das mit VirtualDub(Mod) als AVI vorher fertig zu machen; denn mit einem AviSynth-Skript, welches
1) ein Einzelbild lädt,
2) die Framerate asynchron verringert, um auf 10 Sekunden zu kommen,
3) die Framerate synchron erhöht, um auf 25 fps zu kommen,
4) Ein- und Ausblende festzulegen
hat man sicher einiges zu basteln und mit Vorschau zu prüfen, bis das den eigenen Vorstellungen entspricht.
Statt dessen kann man aber auch in VirtualDub(Mod) ein Bild einladen (BMP - bei VDMod auch PNG), und mit den Programmfunktionen sowie mit VirtualDub-Filtern das gleiche vielleicht von der Bedienung her etwas leichter hinkriegen (für diejenigen, die den Umgang mit Skriptsprachen vielleicht nicht so sehr mögen).
Vielleicht wäre auch der "Slide Show Movie Maker" was für dich.
bye, TWC
Und wieder Avisynth 2.5x !!!
# Script ResampleAudio wird importiert
Import("ResampleAudio.avs")
# Video wird importiert und gleich in YUY2 Format gewandelt
v1 = AviSource("sourcefilm.avi").ConvertToYUY2()
# ein Bild wird importiert und gleich in YUY2 Format gewandelt
v2 = ImageReader("logo.bmp",0,0,1,false).ConvertToYUY2()
# Bild wird an Video angepasst ( Framerate, Länge = 10sec) und Ein und Abblenden
v2 = ChangeFPS(v2,Framerate(v1)).Loop(10).FadeIn(25).FadeOut(25)
# Bild wird an Video angepasst ( Weite & Höhe
v2 = LanczosResize(v2,Width(v1),Height(v1))
# Bild wird ein Sound erzeugt
v2 = ResampleAudio(v2,Audiorate(v1)).GetChannel(1,1)
# Bild und das Video wird zurückgegeben
return v2 + v1
Wenn fragen, ich helfe gern.
ZitatUnd wieder Avisynth 2.5x !!!
Und mit Avisynth 2.08 geht das nicht ?
Nein, die Bild-Import-Funktion wurde erst mit AviSynth 2.51 eingeführt. Für AviSynth 2.08 müsstest du noch zusätzlich das Plugin importieren, welches arlsair erwähnt hat.
Links zu Avisynth Addon Funktionen
AviSynth Filter Collection < dort gibts auch das ImageSequence Plugin für 2.0x
Danke für die Tips.
"imagesequence_20_dll_20030507.zip" habe ich mir gerade gesaugt.
Das BMP-File bearbeite ich vorher mit "Irfan View" und hat deshalb schon das richtige Format. Ton soll auch nicht unterlegt werden, oder muß aus Kompatibilitätsgründen ein Audio-Dummy her ?
Also würde mein Script so aussehen ?
LoadPlugin("c:\path\imagesequence.dll")
v1 = AviSource("sourcefilm.avi")
(crop + resize - Fit2disc)
v2 = CoronaSequence("c:\path\picture.jpg", start=1, stop=250, fps=25, textmode=0, posx=0, posy=0)
return v2 + v1
Falls es so stimmen sollte wäre noch interessant wie das Audio-Dummy erzeugt werden muß. (48KHz/16Bit/Stereo)
Gruß Gunnar
Sieht für meine Begriffe eigentlich schon ganz gut so aus.
Ob es mit Audio Probleme gibt, kann ich nicht sagen - ich benutze AviSynth immer ohne. Aber es wäre durchaus zu empfehlen, gleiche Werte wie im Hauptfilm zu verwenden. Das sollte GSpot oder VirtualDub rauskriegen, was drin ist.
Jetzt brauchst du eigentlich nur noch in der AviSynth-Dokumentation was über FadeOut() zu lesen, und dann hast du's ja fast:
return v2.Fade...() + v1
Falls Du kein Audio brauchst, öffnest Du dein AVI per :
v1 = AviSource("sourcefilm.avi",false)
Dein Bild muß auch die selbe Größe & Format haben wie das Video !
dann funkts auch mit dem v2 + v1
Also jetzt interessiert es mich auch. Wenn folgendes gegeben ist um mal bei Gunnar´s Beispiel zu bleiben:
AVI (TV-Capture mit DV-Codec YUY2 TFF incl. Audio 48KHz/16Bit/Stereo)
BMP (720x576 RGB ohne Audio)
v1 = AviSource("sourcefilm.avi")
SeparateFields()
BicubicResize(688,272,0,0.6,4,2,712,284).Weave()
AddBorders(16,16,16,16)
LoadPlugin("c:\path\imagesequence.dll")
v2 = CoronaSequence("c:\path\picture.jpg", start=1, stop=250, fps=25, textmode=0, posx=0, posy=0).ConvertToYUY2
return v2.FadeIn(50).Fadeout(50) + v1
Stimmt das so ?
TWC
Ein clip mit und ohne Audio kann nicht zusammengefügt werden (Fehlermeldung).
ImageSequence liefert KEIN Audio, es muss also vorher eines mit AudioDub dazugelegt werden.
Oder die Videoquelle hat auch nur Bild und kein Audio.
Vorsicht auch beim Verwenden von "+" statt "++":
v1 ++ v2 hält den Ton von beiden clips synchron,
v1 + v2 fügt die Tonspuren lückenlos aneinander.
Wenn diese nicht gleich lang sind, wird's also bei "+" unsynchron.
--> verschiedenen Quellen mit "++"
--> AVI aus einer Aufnahme (seqmented AVI) mit "+"
Beachte auch: ImageSequence(..., start=1, stop=200) liest das GLEICHE Bild wirklich 200x ein (geht zwar schnell, aber trotzdem)
Besser wie katjarella mit Loop() !
Stimmt WarpEnterprises,
Quellen, eine ohne & eine mit Audio, können nicht zusammen "geklebt" werden.
# Spezial Script XResampleAudio.avs
function XResampleAudio(clip v1, int rate, bool mods) {
v2 = Blankclip(audio_rate=rate,stereo=mods)
v1 = AudioDub(v1,v2)
return v1
}
-------------------------------
# Dein Script
Import("XResampleAudio.avs")
LoadPlugin("c:\path\imagesequence.dll")
# Video Bearbeitung
v1 = AviSource("sourcefilm.avi")
SeparateFields()
BicubicResize(688,272,0,0.6,4,2,712,284).Weave()
AddBorders(16,16,16,16)
#Intro Bearbeitung
v2 = CoronaSequence("c:\path\picture.jpg",start=0,stop=0,fps=25).Loop(250).ConvertToYUY2
v2 = FadeIn(v2,50).Fadeout(50)
v2 = XResampleAudio(v2,48000,true)
#Ausgabe
return v2 ++ v1
Meine Güte, darauf wäre ich ja nie gekommen. :eek:
Wo lernt man denn so mit Avisynth umzugehen ? Wer weiß welche Schätze da noch am Schlummern sind. Da mein Englisch auch noch verdammt mies ist, ist es für mich doppelt schwer Avisynth im größeren Umfang zu kapieren. Dein Script kommt in meine Datenbank ... Danke.
Gruß Gunnar
Ach was, englisch... Wenn du AviSynth 2.08 installierst, dann kannst du doch im Installer anwählen, dass auch die deutschsprachige Dokumentation mit entpackt wird. Und die ist im Ansatz eigentlich recht gut. Man muss nur gerade als Anfänger bereit sein, die Beispiele und alle interessanten Filter auch mal auszuprobieren. Dann kann am Ende so was herauskommen wie mein "Array4x4", oder wie die Skripts von katjarella - Respekt immer wieder!
ZitatAch was, englisch...
Nix da, zeig mir wo das in der deutschen Anleitung steht und auch vernünftig erklärt wird:
Zitatfunction XResampleAudio(clip v1, int rate, bool mods) {
v2 = Blankclip(audio_rate=rate,stereo=mods)
v1 = AudioDub(v1,v2)
return v1
}
Erzähl mir nicht das Avisynth leicht zu verstehen ist mal abgesehen von den meist verwendeten Befehlen die z.B. Fit2disc verwendet. Wie AVIs oder Plugins geladen\zusammengefügt oder mit "Trim" gecuttet werden weiß ich auch. Ich arbeite auch schon länger mit den Standartbefehlen ohne Probleme. Mir scheint du hast mindestens eine Programmiersprache mit Löffeln gefressen. Da kann man leicht hier rumtönen.
Gruß Gunnar
na Jungs... nicht so böse.
Avisynth ist schon ab einer bestimmten Ebene schwer. Aber dies ist jede Scriptsprache, wenn Sie mehr als 5 Befehle hat.
Auszug vom QUANTIFIED MOTION FILTER by HomiE FR
ZitatAlles anzeigen
# SETTING PAST/PRESENT/FUTURE CLIPS
global clip_p2 = Trim(c,0,-2)+c
global clip_p1 = Trim(c,0,-1)+c
global clip = c
global clip_f1 = Trim(c,1,0)
global clip_f2 = Trim(c,2,0)# APPLYING MOTION FILTER ACCORDING TO MOTION LEVEL
c = ConditionalFilter(c,Low_Motion_Filter(clip),Medium_Motion_Filter(clip),"motion_level","=","0")
c = ConditionalFilter(c,High_Motion_Filter(clip),c,"motion_level","=","2")# PRINTING DEBUG INFORMATION
c = (debug == true) ? ScriptClip(c,"Debug()") : c# GETTING MOTION LEVEL THROUGH MOTION ESTIMATION
c = FrameEvaluate(c,"ME()")# GETTING DIFFERENCES BETWEEN PAST/PRESENT/FUTURE FRAMES
c = FrameEvaluate(c,"global diff_f2 = y_ratio*YDifferenceFromPrevious(clip_f2) + uv_ratio*UDifferenceFromPrevious(clip_f2) + uv_ratio*VDifferenceFromPrevious(clip_f2)")
c = FrameEvaluate(c,"global diff_f1 = y_ratio*YDifferenceFromPrevious(clip_f1) + uv_ratio*UDifferenceFromPrevious(clip_f1) + uv_ratio*VDifferenceFromPrevious(clip_f1)")
c = FrameEvaluate(c,"global diff = y_ratio*YDifferenceFromPrevious(clip) + uv_ratio*UDifferenceFromPrevious(clip) + uv_ratio*VDifferenceFromPrevious(clip)")
c = FrameEvaluate(c,"global diff_p1 = y_ratio*YDifferenceFromPrevious(clip_p1) + uv_ratio*UDifferenceFromPrevious(clip_p1) + uv_ratio*VDifferenceFromPrevious(clip_p1)")
c = FrameEvaluate(c,"global diff_p2 = y_ratio*YDifferenceFromPrevious(clip_p2) + uv_ratio*UDifferenceFromPrevious(clip_p2) + uv_ratio*VDifferenceFromPrevious(clip_p2)")return c
}
Aber meins mit XResampleAudio ist nicht so schwer, wenn man die einzelnen Befehle durchgeht. Das Komplizierte ist nur die Verknüpfung und die Reihenfolge der Befehle. Aber wie schon gesagt, ist bei jeder Scriptsprache so... heißt also nur üben, teste, absturzt und wenns funkt freuen
Der Fairness halber sollte man noch sagen, dass bei AVISynth ja das reine beherrschen einer Skript-Sprache nicht ausreicht. Man muss zumindest bei den "höheren" Funktionen auch gute Kenntnisse zum Thema Video mitbringen (oder nicht erarbeiten).
Und auch die Eigenheiten kennen, die manche Programme so haben. Wenn CCE ordentlich mit tonlosen AVIs umgehen könnte, wäre der "Spaß" mit XResampleAudio() nie nötig gewesen.
Die Anleitung kann nur die Grundlagen vermitteln. Sie auf komplexere Probleme anzuwenden, erfordert jedoch Erfahrung. Und man weiss ja:
ZitatErfahrung ist eine nützliche Sache.
Leider macht man sie meist erst, kurz nachdem man sie brauchte.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!