12.03.2021, 21:05
(12.03.2021, 06:49)Selur Wrote: Schau ich mir später genauer an, aber die ganzen AssumeFPS sollten bis auf den letzten 'clip = core.std.AssumeFPS(clip=clip,fpsnum=50, fpsden=1)# new fps: 50' unnötig sein.
Auch ist mir der Sinn von 'End 1' unklar,..
da die ausgewählten Even/Odd Frames direkt wieder verworfen werden,..
Cu Selur
Richtig ja , das sind eher überbleibsel von meinen Tests. std.Interleav muss die selbe fps, auflösung bit tiefe etc haben. Die kürzeste Version sähe so aus:
clipOdd = core.std.SelectEvery(clip=clip, cycle=2, offsets=[1])
clipEven = core.std.SelectEvery(clip=clip, cycle=2, offsets=[0])
# Do stuff with Even frames
# Do stuff with Odd frames
clip = core.std.Interleave(clips = [clipEven, clipOdd])
# Do stuff with all frames
clip = core.std.SelectEvery(clip=clip, cycle=2, offsets=[0])
Das zweite ende ist ein alternatives ende für progressives material also:
clipHigh = core.std.SelectEvery(clip=clip, cycle=2, offsets=[1])
clipLow = core.std.SelectEvery(clip=clip, cycle=2, offsets=[0])
# Do stuff with High frames
# Do stuff with Low frames
clip = core.std.Interleave(clips = [clipHigh, clipLow])
# Do stuff with all frames
clip = core.std.Merge(clipHigh, clipLow, 0.5)
Ich teste noch aber die meisten temporalen filter arbeiten wunderbar mit dieser methode zusammen. z.b FluxSmooth und alles was DCT benutzt funtioniert wirklich gut. Ich bekomme heute noch besuch und weiß daher nicht wie weit ich heute damit komme, aber ich werde versuchen beispiel scripte und presets schonmal zusammen zu stellen.