I was looking at the wiki for some plugins and I found about ConvertFPS() but this only accepts 40+ FPS values so I tried 40.001 and the output was great but the size still too big for what I need to use it, so I tried checking FPSDown() after but the official download link on github is 404 and I couldn't find another one, I don't know how to use visual studio so I cannot even try compiling it from the code posted on github. Then I also tried SalFPS3() but it returns an error "I don't know what warp means" and similar error from SalFPS() about warpfast so even this couldn't be used. I'm using Import() to load SalFPS3.avs and SalFPS.avs by the way, is it the wrong method to load these kind of scripts? I've not used much Avisynth lately so I may be overlooking something (I bet I did).
I thought there would be many interpolation filters like FPSDown() to reduce to half the frames but surprisingly I didn't find any other similar plugins. By any chance does anyone know an alternative, or a working download link for FPSDown?
+ Reply to Thread
Results 1 to 15 of 15
I saw that one too but from what I understood it doesn't apply interpolation. I was looking for something that can make the best use of the 60 fps source to generate good 30p interpolated output.
I think what you're looking for is more properly called motion blur, not interpolation. You can blend pairs of frames together with Merge(SelectEven(), SelectOdd()). With small motions that looks like motion blur but with larger motions it looks like double exposures. Another method is to create a higher frame rate with motion interpolated frames, say from 60 fps to 240 fps, then blend many frames together. The problem with this is that motion interpolation doesn't always work well and you will often end up with weird warping artifacts.
# assuming 60 fps input Interframe(newnum=240, newden=1, cores=4) # 240 fps Merge(SelectEven(), SelectOdd()) # 120 fps Merge(SelectEven(), SelectOdd()) # 60 fps Merge(SelectEven(), SelectOdd()) # 30 fps
QTGMC can add motion blur as well, although I have no idea what he's really trying to ask. From the QTGMC doc:
Single-rate output may look a little stuttery, depending on how the source was filmed/created. Adding motion blur to each frame can help with this, smoothing the feel of the slower rate playback.
And an example:
QTGMC( Preset="Slower", FPSDivisor=4, ShutterBlur=1, ShutterAngleSrc=180, ShutterAngleOut=180 ) # Keep "film" look on single-rate output, "film" input.
Last edited by jagabo; 11th Oct 2018 at 00:24.
Good, I didn't actually test but was just modifying the example script from the doc in order to get Tonnad's framerate down to 30fps. Your version saves having to bob it yet again.
I do remember a similar discussion in the German Gleitz board, a speculation how to create a "soap opera effect" on purpose. This question may not be the same, but there is surely a desire to avoid a "short shutter" stuttering by selecting only one half of the frames. A simple merge is possible but will have a slight disadvantage compared to the result if it would have been shot with a twice as long shutter that there would be a different brightness distribution, and a gamma correction in this merge algorithm could be used to improve the result (reply #8 by Didée). Unfortunately, images demonstrating the difference are now lost.
What I had in mind was something similar to SVP's interpolation, but since I'm reducing the frame rate (SVP is used only for increasing iirc) it would need to process the frames in a different way, I imagine recreating the -2 -1 and +1 +2 frames where the decimation happens (and 0 is the decimated frame). From the description on the wiki FPSDown() does something like that and ConvertFPS() from what I see in the output does it too, even though it's capped to 40+ fps only.
Here are trimmed clips from the files I'm using:
60p source - https://my.mixtape.moe/gspveo.mp4 (reuploaded)
40p output (a bit edited) - https://my.mixtape.moe/uygfej.mp4
That in the 40p file is the kind of interpolation I was looking for. Here you can see in detail:
Seeking in 60p source - http://webm.land/w/jjby/
In 40p output - http://webm.land/w/dYub/
Ignoring the Scanlines() filter, you can notice how the waves have after-images sometimes. I don't think is the same as blurring, I usually call it ghosting or interpolation.
Last edited by Tonnad; 11th Oct 2018 at 13:15.
Speeding the video up to 60 fps then using the aforementioned techniques:
Yes, the first one is Merge(SelectEven(), SelectOdd()). It's sharpest but you can see the double exposures when movements are large. ConvertFPS() won't allow you to halve the frame rate. You could do it in step-wise, 60 -> 45 -> 30, but then it will look like triple exposures.
With the scanlines it looks nice and smooth, I don't mind that. ConvertFPS() won't do that either I believe, whenever I try to use a fps value lower than 40.001 avisynth throws an error. Anyway, I just finished encoding, it looks perfect and the size went down by another 11 MB which is ideal for its purpose, really thanks a lot for all the suggestions, I would've never figured out by myself.
Since other plugins like FPSDown() may go 404, I'm going to leave my plugin folder here: https://my.mixtape.moe/gwxrzi.zip
It's not complete by any means but it's all I've been using since 2012-2013.
Last edited by Tonnad; 11th Oct 2018 at 14:26.