actionman133
11th April 2004, 15:34
Here is some code for a filter that will change the apparent framerate of progressive material without actually changing the true framerate. It works by adding and removing fields rather than frames, and maintains better motion than removing full frames.
This is great for speeding up or slowing down film material that you plan to release on DVD or TV, because each frame is still seen, as long as the speed is less than 2x the original rate. It's also very fast.
Function AlterFPS (clip Last, float Speed, bool "Weaving") {
Weaving = Default (Weaving, False)
Original = Framerate
AssumeFPS (Speed, True)
ChangeFPS (2 * Original)
(Speed == Original) ? Trim (0, -1) ++ Last : Last
(Weaving == True) ? SeparateFields.SelectEvery (4, 0, 3).Weave : Last
}
Any suggestions on improvement? and ive also put up a poll to see if anyone would like to have this implemented into the AVISynth code, or make into a plugin. I think it's useful...
This is great for speeding up or slowing down film material that you plan to release on DVD or TV, because each frame is still seen, as long as the speed is less than 2x the original rate. It's also very fast.
Function AlterFPS (clip Last, float Speed, bool "Weaving") {
Weaving = Default (Weaving, False)
Original = Framerate
AssumeFPS (Speed, True)
ChangeFPS (2 * Original)
(Speed == Original) ? Trim (0, -1) ++ Last : Last
(Weaving == True) ? SeparateFields.SelectEvery (4, 0, 3).Weave : Last
}
Any suggestions on improvement? and ive also put up a poll to see if anyone would like to have this implemented into the AVISynth code, or make into a plugin. I think it's useful...