View Full Version : 15 FPS AVI - How to get it smoother than it is???
mdkusr
15th August 2006, 03:55
I've tried everything in AVISynth and can't seem to get perfect smoothness on AVISynth. I've given up on trying to get smooth frame rates from a simple conversion from 23.976 FPS to 15 FPS - that looks worst of all. So I've started to use doubleweave to generate some interlaced frames and then cut it down to 15 FPS, and I think that helps. It creates a motion blur effect at random frames. Anyway, here is what my current script looks like:
LoadPlugin("D:\DVDTools\dgmpgdec148\DGDecode.dll")
LoadPlugin("D:\DVDTools\dgmpgdec148\Decomb.dll")
mpeg2source("VTS_07_1.d2v")
DoubleWeave()
Telecide(guide=0,post=2)
Decimate(cycle=2,mode=1)
LanczosResize(320,240)
AudioDub(WavSource("VTS_07_1 T01 3_2ch 384Kbps DELAY -16ms_fixed.wav"))
Hopefully someone has some suggestions to help me smooth out this video. Motion Blur is what I am thinking will help smooth out the video even further and probably replace the Doubleweave idea. Let me know what you guys think.
Thanks,
-M
PS. As you might guess, I am cutting this down to put on a small media device for on the go.
Trixter
15th August 2006, 04:59
Can you clarify what you mean by "smoothness"? Do you mean blur?
What portable device are you converting to and why do you need to cut down the framerate?
Cutting down the framerate is going to lose motion, that's all there is to it. If I were converting 24fps material to a device that couldn't go that fast, I would probably just decimate every other frame to get a clean 12fps. Is there any particular reason you want to go to 15fps?
mdkusr
15th August 2006, 05:15
Can you clarify what you mean by "smoothness"? Do you mean blur?
What portable device are you converting to and why do you need to cut down the framerate?
Cutting down the framerate is going to lose motion, that's all there is to it. If I were converting 24fps material to a device that couldn't go that fast, I would probably just decimate every other frame to get a clean 12fps. Is there any particular reason you want to go to 15fps?
I am not worried about losing motion, just that I get a jerk in the frame rate change due to the conversion. It doesn't look smooth persay. So using Motion blur seems to allow the brain to keep thinking it is motion even though the frame rates are not lining up.
So maybe I should increase frame rate to like 500 FPS, and then convert back down to 15 I am thinking. This would leave a blure effect anytime there is motion to trick the brain into thinking it is fluid motion.
Am I making sense? Maybe I should post a sample video so you can see what kind a jerky motion I am talking about.
-M
PS. The device is a portable iriver Clix. The video limitation is simple L3 MPEG-4 avi at 320x240, 15 fps, 128 mbps mp3 audio. No advanced compression features allowed.
foxyshadis
15th August 2006, 07:08
Just use 11.988 fps - SelectEven() - unless you're absolutely required to use 15 (which is silly, but that's how Sony made the PSP act for a long time). If you're required, well, no combination of changefps and decimate will work, even if you go to 500 - you need convertfps (crazy blending, but no jerking) or mvflowfps/motionprotectedfps.
And what's with the random doubleweave in there?
mdkusr
15th August 2006, 17:48
Just use 11.988 fps - SelectEven() - unless you're absolutely required to use 15 (which is silly, but that's how Sony made the PSP act for a long time). If you're required, well, no combination of changefps and decimate will work, even if you go to 500 - you need convertfps (crazy blending, but no jerking) or mvflowfps/motionprotectedfps.
And what's with the random doubleweave in there?
I put the doubleweave in there to double the frame rates and so I could then use the Decimate function on in an attempt to blen the frames.
What I get is like a seasaw effect on the frame rate where it obviously skips an extra fram every half second in an effort to catch up. THe idea with trying to put some form of motion blur in there is an attempt to hide that frame jump. There has got to be a way to make 15 FPS look a little less like the Seasaw effect.
foxyshadis
15th August 2006, 20:08
You should aim for getting normal, progressive 24 or 30 fps video before you convert, instead of trying to get tricky with telecide. Here's a couple options, based on whether 15 is a requirement or just a maximum.
For telecined film:
Telecide(guide=0,post=2).Decimate()
SelectEven() # if 12 fps is allowed
#MotionProtectedFPS(15) # if not, comment above and uncomment this
For 60i video:
LeakKernelDeint(order=?)
SelectEven()
#Changefps(15) # only if 15 fps is required and 14.9985 won't work.
mdkusr
16th August 2006, 04:19
This is why i am interested in motion blur. This was created from interlaced source material (at 29.97 FPS) and it is still converted to 15 FPS, yet the mode=1 on decimate added near perfect motion blur to keep the action smooth, even at 15 FPS. This video is fully compatible with my device.
This file is only about 6 MB, but demonstrates what I am looking for. The explosions and smoke are actually rendered quite well by Xvid in two pass mode. Let me know what you think:
http://rapidshare.de/files/29557914/Red_Flag.avi.html
The trick is, progressive 23.976 FPS material looks a lot worse and I haven't perfected it yet. I am still trying new things though, and I did try different frame rates but I still get the off frame here and there. Thanks for your input. Anymore you could offer would be appreciated too.
Off to try some of these tips on movie material! :) I'll try the selecteven and see how that looks. Thanks!
-M
Trixter
16th August 2006, 07:14
I am not worried about losing motion, just that I get a jerk in the frame rate change due to the conversion. It doesn't look smooth persay.
In that case I'd recommend just halving the framerate.
If you don't care how long it takes, you could always bob the footage with mvbob() and then use MVTool's MVFlowFPS to synthesize a decent 15fps out of the footage; as long as there isn't too much of a drastic change between frames, it would look good.
mdkusr
16th August 2006, 07:55
As far as I can tell, cutting the framerate of pure film in half, which equals about 11.988012 FPS looks worse than 15 FPS. Picture quality drops off and motion looks worse than 15 FPS by a long shot. I can post a sample if anyone wants to see.
I'll try the mvbob idea next.
-X
foxyshadis
16th August 2006, 10:05
You either have film, which you can use telecid/decimate on, or you have video, which you can use mvbob on. That's part of how you get the progressive video. From the looks of it you aren't getting progressive yet, there's a lot of blends in there; do you have an unprocessed clip?
mdkusr
16th August 2006, 17:09
You either have film, which you can use telecid/decimate on, or you have video, which you can use mvbob on. That's part of how you get the progressive video. From the looks of it you aren't getting progressive yet, there's a lot of blends in there; do you have an unprocessed clip?
I purposely left the blends in there during the decimate function instead of discarding the frame, simply because they remove the seasaw effect when watching it. It is progressive however, just a lot of motion blur.
If you remove the motion blur and make it pure by changing to mode 0, then you get the jumping frames, unless you drop to 11.988012 FPS (You lose 25% of your frame rate, when you are already dealing with limited frame rate), but at that frame rate, normal motion is rather laggy looking to start with and looks much worse than the occasional frame jump. So the motion blur tricks your brain into thinking that fluid motion is happening - same way hollywood does it for film while still only being at 23.976024 FPS.
Anyway, this is the effect I am going after. Is MVBob the best way to accomplish that?
-X
PS. PAL people are lucky since the math works with 15 FPS just being 3:5 of 25 FPS. This is not fair! :)
neuron2
16th August 2006, 17:51
Is MVBob the best way to accomplish that? Please don't ask about what is best, per forum rule 12. Thank you.
http://forum.doom9.org/forum-rules.htm
mdkusr
16th August 2006, 18:27
Please don't ask about what is best, per forum rule 12. Thank you.
http://forum.doom9.org/forum-rules.htm
Let me reword that - is MVBob a good way to accomplish that? :)
foxyshadis
16th August 2006, 21:32
mvbob will not give you motion blur. mvflowblur will give you more. Now that I see what you're doing, I think:
bw = source.MVAnalyse(isb = true, truemotion=true, idx=1)
fw = source.MVAnalyse(isb = false, truemotion=true, idx=1)
source.MVFlowBlur(bw, fw, blur=75, idx=1)
SelectEven() # or convertfps(15), which should look better now than without blur
Would suit. Change blur for more or less motion blur. There's another script function, mvfps, that is also good but rather slower way of doing the same.
mdkusr
17th August 2006, 00:05
mvbob will not give you motion blur. mvflowblur will give you more. Now that I see what you're doing, I think:
bw = source.MVAnalyse(isb = true, truemotion=true, idx=1)
fw = source.MVAnalyse(isb = false, truemotion=true, idx=1)
source.MVFlowBlur(bw, fw, blur=75, idx=1)
SelectEven() # or convertfps(15), which should look better now than without blur
Would suit. Change blur for more or less motion blur. There's another script function, mvfps, that is also good but rather slower way of doing the same.
Thanks - I'll try that
Trixter
17th August 2006, 05:50
at that frame rate, normal motion is rather laggy looking to start with and looks much worse than the occasional frame jump.
That's just your personal preference. I cannot stand for one second jumping frames. I would much rather have smooth motion at a low framerate than jerky/jumpy higher motion.
Anyway, just didn't like the wording "much worse" since not everyone feels that way :)
mdkusr
24th August 2006, 16:44
mvbob will not give you motion blur. mvflowblur will give you more. Now that I see what you're doing, I think:
bw = source.MVAnalyse(isb = true, truemotion=true, idx=1)
fw = source.MVAnalyse(isb = false, truemotion=true, idx=1)
source.MVFlowBlur(bw, fw, blur=75, idx=1)
SelectEven() # or convertfps(15), which should look better now than without blur
Would suit. Change blur for more or less motion blur. There's another script function, mvfps, that is also good but rather slower way of doing the same.
WHy do I keep getting errors when trying to use your script? I don't have a copy of it here, so I'll post it when I get home, but I can't seem to make it work.
-M
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.