Small feature request for RIFEv4: target fps as alternative to multiplier
Selur opened this issue · 3 comments
I would it be possible to allow setting a target fps instead of a multiplier when using RIFEv4?
When going from for example 23.976 (24000/1001) to 60 fps, having to use (60 * 1001 / 24000 =) 2,5025 is kind of annoying. ;)
I know could write a wrapper arount the rife.RIFE but I suspect depending on the resulting float it would be more accurate if this was done inside the filter.
Starting with 24000/1001 fps content and looking at:
Frame: 71928 (= 24000/1001fps * 5060sec)
with a multiplier of 2, I get frame 143856 (= 224000/1001fps * 50*60sec), which is the same.
-> everything seems alright.
Frame: 71928 (= 24000/1001fps * 5060sec)
with a multiplier of 2.5025, I get frame 180000 (= 2.5025 * 24000/1001fps fps * 5060sec), which is the same.
-> everything seems alright.
Frame 143856 (= 24000/1001fps * 10060sec)
with a multiplier of 2.5025 I get frame 360000 (= 2.5025 * 24000/1001fps fps * 10060sec), which is not the same.
Looking through the frames 359640 seems to be the correct one which corresponds to a multiplier of 2.5.
=> My guess is that that either multiplier can only have one (or two?) decimal or there is a bug.
For those having the same issue: As a workaround, rounding up to 2 decimals (so 2.5025 becomes 2.51) using that multiplier and then using ChangeFPS to the real target fps seems to work fine.
Sorry, wanted to post this over at https://github.com/HomeOfVapourSynthEvolution/VapourSynth-RIFE-ncnn-Vulkan (too many rife impelmentations ;))