Ich habe mit AVISynth MT für meine Zwecke ein geeignetes Skript erstellt. Jedoch würde ich gerne auf AVISynth+ MT umstellen. Sprich das was ja bei MeGUI auch schon enthalten ist.
Für das normale AVISynth MT gab es ja SetMTMode und bei AVISynth+ MT gibt es dieses SetFilterMTMode
Wie genau müsste ich das umschreiben, damit der Effekt der MT Nutzung der gleiche wäre?
Hier mal das Skript, wenn es voll bestückt ist:
### Lade Plugins und setze die globalen Variablen ###
LoadPlugin("D:\SSM\Plugins\FFMS2.dll")
LoadPlugin("D:\SSM\Plugins\VSFilterMod.dll")
LoadPlugin("D:\SSM\Plugins\blockbuster.dll")
LoadPlugin("D:\SSM\Plugins\mvtools2.dll")
LoadPlugin("D:\SSM\Plugins\nnedi3.dll")
LoadPlugin("D:\SSM\Plugins\ColorMatrix.dll")
Global breite = 1920
Global hoehe = 1080
Global AR = 1
### Lade Videoquellen ###
SetMemoryMax(512)
SetMTMode(3,2)
AVIload("I:\Test.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)\
++ AVIload("I:\AviSynth Script (neu).mkv", 1, 0, 0, -0, -0, "Auto", "Igno.", 0, 0)
### Filter Verarbeitungszone ###
ColorMatrix("Rec.601->Rec.709", 0, 2, 3, False, False, False, False, "", False, 1, 0, 3)
SetMTMode(2)
Tweak(0.0, 1.9, 0.0, 1.0, True)
SetMTMode(2)
sum = MSuper(pel = 2)
MFlowBlur(sum, MAnalyse(sum, isb = true), MAnalyse(sum, isb = false), blur = 50.0)
SetMTMode(2)
Blockbuster("Blur", Block_size=8, Detail_min=75, Detail_max=100, Luma_offset=0, Luma_threshold=25, Strength=100)
TextSubMod("I:\Subs\Testsub.ass")
(IsYUY2() == true) ? ConvertToYV16(matrix = "Rec709") : Last
### Funktion für Video-Laderoutine ###
Function AVIload (String file, int loading, int cl, int co, int cr, int cu, string pixtype, string afps, int fpsn, int fpsd) {
(loading == 1) ? FFIndex(file) : nop()
clip0 = (loading == 3) ? LWLibavVideoSource(file) : (loading == 2) ? Import(file).KillAudio() : (loading == 1) ? FFVideoSource(file, threads=1) : (pixtype == "Auto") ? AVISource(file, false).KillAudio() : AVISource(file, false, pixel_type=pixtype).KillAudio()
clip1 = clip0.AutoFPS(afps, fpsn, fpsd).Cropping(cl, co, cr, cu)
Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYV12(matrix = "Rec709") : Clip1.Resize()
}
Function AutoFPS (Clip clip0, string afps, int fpsn, int fpsd) {
rate1 = (afps == "Auto") ? (Round(Float(clip0.framerate * 1000)) / 1000) / 2 : nop()
rate2 = (afps == "Auto") ? Round(clip0.framerate) / 2 : nop()
rate = (afps == "Auto") ? (rate1 == rate2) ? 1 : 1001 : (afps == "Igno.") ? clip0.frameratedenominator : fpsd
ratefaktor = (afps == "Auto") ? (rate == 1001) ? 1000 : 1 : nop()
clip0 = (afps == "Auto") ? (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate) : (afps == "Igno.") ? clip0.AssumeFPS(clip0.frameratenumerator, rate) : clip0.AssumeFPS(fpsn, rate)
Return clip0
}
Function Cropping (Clip clip0, int cl, int co, int cr, int cu) {
clip0 = (clip0.IsRGB32() == True) ? clip0.ConvertToRGB24() : clip0
Return (cl != 0 || co != 0 || cr != 0 || cu != 0) ? clip0.Crop(cl, co, cr, cu) : clip0
}
Function Resize (Clip clip1) {
clip1 = (AR == 1) ? ((float(Clip1.height * breite) / clip1.width) / 2 == round((float(Clip1.height * breite) / clip1.width) / 2)) ? ((float(Clip1.width * hoehe) / clip1.height) / 2 == round((float(Clip1.width * hoehe) / clip1.height) / 2)) ? clip1 : clip1.ConvertToRGB24() : clip1.ConvertToRGB24() : clip1
clip1 = (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.nnedi3_rpow2(rfactor=2, nsize=0, nns=3, qual=1, etype=0, pscrn=2, cshift="Spline16Resize", fwidth=breite, fheight=ceil(float(Clip1.height * breite) / clip1.width), threads=0, opt=0, fapprox=15) : Clip1.nnedi3_rpow2(rfactor=2, nsize=0, nns=3, qual=1, etype=0, pscrn=2, cshift="Spline16Resize", fwidth=ceil(float(clip1.width * hoehe) / clip1.height), fheight=hoehe, threads=0, opt=0, fapprox=15)) : clip1.nnedi3_rpow2(rfactor=2, nsize=0, nns=3, qual=1, etype=0, pscrn=2, cshift="Spline16Resize", fwidth=breite, fheight=hoehe, threads=0, opt=0, fapprox=15).ConvertToYV12(matrix = "Rec709")
back = (AR == 1) ? (1 == 1) ? ImageReader("D:\VB-Projekte\Batch VB\VB6\Backgrounds\Background_01.png", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(clip1.frameratenumerator, clip1.frameratedenominator).nnedi3_rpow2(rfactor=2, nsize=0, nns=3, qual=1, etype=0, pscrn=2, cshift="Spline16Resize", fwidth=breite, fheight=hoehe, threads=0, opt=0, fapprox=15).ConvertToYV12(matrix = "Rec709") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YV12").KillAudio() : clip1
Return (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
}
Alles anzeigen
Und bitte... ich möchte jetzt keine riesen Beanstandung des Skriptes haben, sondern wirklich nur wissen wie ich die MT Sachen von AVISynth MT nach AVISynth+ MT umändern muss, damit das von der Reihenfolge gleich arbeitet.
PS: Jeder SetMTMode Befehl im Skript sollte dabei bitte beachtet werden, das dies Punkte sind die sich ändern können. Einfach so wie es da steht halt umkonvertiert auf dieses AVISynth+ MT.
Ich weiß nämlich überhaupt nicht so richtig wie ich das machen soll.