Ich kann zwar auf die Art und Weise das Bild etwas stabilisieren und den Speicherbedarf für das Ergebnis senken,
AutoCrop(movie.trim(0,0),0,716,424,0,0,0,0,30,1,0,0,0) \...+ AutoCrop(movie.trim(11,11),0,716,424,0,0,0,0,30,1,11,11,0) \...+ AutoCrop(movie.trim(99,99),0,716,424,0,0,0,0,30,1,99,99,0)
aber für den ganzen Film muss das natürlich 'ne Schleife werden. Die hier tut's aber nicht, sondern gibt nur den letzten Frame (den aber wie gewollt beschnitten und zentriert) aus [der jeweils letzte Fame überschreibt den Vorgänger].
GScript("""for (i=0,99) {AutoCrop(movie.trim(i,i),0,716,424,2,2,4,4,30,1,i,i,0)}""")
Edit:
So sieht es jetzt aus. Dauert bloß ewig, bis das Skript geladen ist (deshalb zunächst auf die ersten 100 Frames beschränkt).
LoadPlugin("D:\Programme\DVD-RB\DGDecode.dll")
cap1 = mpeg2source("G:\Aufnahme I\V01.D2V")
cap2 = mpeg2source("G:\Aufnahme II\V01.D2V")
cap3 = mpeg2source("G:\Aufnahme III\V01.D2V")
cap4 = mpeg2source("G:\Aufnahme IV\V01.D2V")
main = Merge( Merge(cap1.Trim ( 9,89469), cap2.Trim(10,89470)), \
Merge(cap3.Trim (15,89475), cap4.Trim( 9,89469)))
end = Interleave( cap2.Trim(89471,91626), \
cap3.Trim(89476,91631), \
cap4.Trim(89470,91625) \
).TemporalSoften(1,255,255).SelectEvery(3,1)
movie = main + end
movie = movie.assumetff().doubleweave().selectodd().Trim(0,99)
frame = 1
last = movie.FrameCount()
video = AutoCrop(movie.trim(0,0),0,716,424,0,0,0,0,30,1,0,0,0)
GScript("""
while (frame < last ) {
video = video ++ AutoCrop(movie.trim(frame,frame),0,716,424,0,0,0,0,30,1,frame,frame,0)
frame = frame + 1
}
""")
return video
Alles anzeigen