Log in

View Full Version : SVPflow motion interpolation (Avisynth + Vapoursynth, Linux, Mac?)


Pages : 1 2 [3] 4 5 6 7

kolak
7th June 2012, 19:07
Thanks!- will try.

Mug Funky
8th June 2012, 01:43
@ Reel.Deel:
libavcodec based decoders until very recently decoded canon footage as tv range when they should have decoded them as fullrange. so we ended up with crushed blacks and clipped whites.

from watching the changelogs, it's been fixed recently, but i'm not sure which version ffms is compiled against, and i broke my msys environment and can't seem to get ffms-cplugin to usefully compile any more. hence i'm using qtinput to be safe (if a little unnecessarily slow and in 422 instead of native 420)

Reel.Deel
8th June 2012, 13:35
I've been using the Canon Technicolor profile and have not noticed any of the above issues. I will definitely keep an eye on it though :). Thanks again Mug Funky.

@ chainik_svp

Hello chainik_svp, first of all thanks for all your work and of course the rest of the SVP Team. I was reading the changelog (http://www.svp-team.com/wiki/Changelog) and noticed that v.3.1.2 was just recently released. Just wondering if any of the SVP dlls have been updated since v.1.0.5?

chainik_svp
8th June 2012, 21:13
Reel.Deel
Yeah, algo=1 is broken in 1.0.5 and it's fixed in libs bundled with SVP 3.1.2.
Also there was a little issue with U & V channels on smallest levels in super clip.

TheSkiller
14th July 2012, 09:45
I just tried to test the motion blur script (http://forum.doom9.org/showthread.php?p=1577458#post1577458) by Mug Funky and downloaded the SVP AviSynth plugins (not the installer) from their download site (http://www.svp-team.com/wiki/Download).
The problem is, whenever I try to load my script I get (for example): "Plugin svpflow1.dll is not an AviSynth 2.5 plugin".

OK, why is this? :( I'm using 2.6 SEt.


Edit: Putting all plugins in a folder and calling only svpflow1 and 2 seems to work better (am I supposed to do that?), but I still get an instant crash without error message.

This does not work here:
SetMemoryMax(1024)

LoadPlugin("C:\libs\svpflow1.dll")
LoadPlugin("C:\libs\svpflow2.dll")

AVIsource("E:\unsynced\6_b.avi").ConvertToYV12()

frcblur(num=60,den=1,angle=360)

OK, I got it to work. It seems it is mandatory to define SetMTmode() with SVPplugins? I also added mt=2 (2 threads) to svsmoothfps.

Mug Funky
19th July 2012, 08:37
ah. nice find. i tend not to use MT build because that's how i roll. i'll probably get into them when they're more stable than the stock release. they probably are already and i'm just scared...

though one thing - temporalsoften needs to be done in linear colorspace to give a really convincing effect. unfortunately it'll need a rewrite for that, because the deep colour workarounds don't work for filters that change the picture substantially - they merge back in all bandy and weird.

here's where i wish i wasted more time in highschool learning C++ and not learning 3D modelling, but then my life would have turned out completely differently.

chainik_svp
22nd July 2012, 22:42
It seems it is mandatory to define SetMTmode() with SVPplugins?

Not really.
SVSmoothFps just needs to know how many threads are in use.
The code is like this:
int threads=get_value_from_params("mt");
if(threads==0)
threads=avisynthEnvironment->GetMTMode();

So:
0. Avisynth 2.5, 2.6 ---> error loading svpflow2.dll (undefined reference to GetMTMode)
1. With "mt" value specified it'll work in any other case
2. Otherwise (without "mt" value):
2.1. Avisynth 2.5 MT ---> OK
2.2. Avisynth 2.5 MT without SetMTMode() call ---> hmmm, i've no idea :D
2.3. Avisynth 2.6 MT ---> crash (different IScriptEnvironment interface definition)

kolak
22nd July 2012, 22:50
chainik_svp -any news about improvements to scene change detection?

Terka
14th August 2012, 09:07
Hi chainik, when do you think svp would be ready to use in complex scripts like QTGMC?

Boulder
14th August 2012, 09:27
There is no reason why it would not work. It's more like "when is -Vit- ready to publish a version of QTGMC with SVAnalyse support". The syntax is a bit cumbersome and as QTGMC uses parameters heavily it's not too easy to modify the script.

aegisofrime
14th August 2012, 17:04
There is no reason why it would not work. It's more like "when is -Vit- ready to publish a version of QTGMC with SVAnalyse support". The syntax is a bit cumbersome and as QTGMC uses parameters heavily it's not too easy to modify the script.

I may be remembering things wrongly but I think he said that SVP offered little improvement, speed or quality wise over MVTools.

Correct me if I'm wrong though.

poisondeathray
14th August 2012, 18:08
I may be remembering things wrongly but I think he said that SVP offered little improvement, speed or quality wise over MVTools.

Correct me if I'm wrong though.

The 1st post

Short version: SVPflow is a successor to MVTools2, providing more speed and more quality.



But I don't recall seeing actual #'s based on GPU speedup comparisons or detailed quality comparisons (they might be buried somewhere)

Keiyakusha
14th August 2012, 18:19
it is a successor to mflowfps so far. it need to improve a lot to be useble for something that is not frame interpolation... as I understand mdegrain is not possible at all with SVP. you still have to add mvtools and even then it will be no more than temporal radius 1. and overcoming this by scripting will be slower than just using normal mvtools... even with temporal radius 1 SVP+mvtools approach hardly beats classic mvtools tr1 speed-wise. Also I got some artifacts with SVP's analogue to mrecalculate.
and regarding non-svp mvtools from svp project... i find dither-mvtools to be faster. (chroma wasn't processed when I compared speed)

Boulder
14th August 2012, 18:48
You can definitely have temporal radius higher than 1, that's what the delta parameter is for in SVAnalyse.

If you find artifacts, it would be useful to everyone if they were reported.

The vector field produced by SVAnalyse is different from what comes out of MAnalyse. I don't know if it's better or worse, but to me it looks as if it catches the actual motion better.

Keiyakusha
14th August 2012, 19:11
You can definitely have temporal radius higher than 1, that's what the delta parameter is for in SVAnalyse.
I don't know what delta is. It says:special: { delta: 1 } Some special parameters not used in SVP. Interval between analysed frames.
Not very informative. Please post script that shows how to simulate mvtools mdegrain2-3
From what I understand equivalent to mvtools temporal radius is "vectors" parameter
1 - forward only, from current frame to the following one (not useful at all),
2 - backward only, from following frame to the current one (useful only with "smoothfps.algo: 1"),
3 - search both directions.
how to make it go from current frame to 3 frames both directions and then use it in some equivalent of mvdegrain (that doesn't exist)? if it is possible, why it doesn't mentions it?

If you find artifacts, it would be useful to everyone if they were reported.
These are kind of ghosting similar to the one when you see when doing frame interpolation and happens with extreme values of thsad in refine. but without extreme values it doesn't refines as good as mrecalculate. was found on anime sources when you don't necessarily have motion in every (part of the) frame.

Boulder
14th August 2012, 19:42
This post has one example of a 3-frame radius in MDegrain: http://forum.doom9.org/showthread.php?p=1574161#post1574161 (the latter part of the script). The vectors parameter tells if the result should contain forward, backward or both vectors.

Keiyakusha
14th August 2012, 19:53
I see, then they need to rewrite documentation because it clearly states that it goes only one frame in one direction and delta is not used ^__^
I'll try some time later delta=2 and 3. but still we don't have replacement for mdegrain. here is no mistake.

chainik_svp
14th August 2012, 20:28
Keiyakusha

"delta" is not a part of SVP (that's why it's named "special.delta" ;)), it was added only by -Vit-'s request.
I dunno why he's gone from this thread right after it was added :D, may be MVs field quality isn't so important in deinterlacing.

And yes, I believe SVPflow vectors are better than MVTools. (otherwise what's the point? :D)

when do you think svp would be ready to use in complex scripts
We've made two options to "connect" almost any MVTools-based script to SVPflow:
- ability to use MSuper as super clip and
- SVConvert function
and I've no idea what else we could do :confused:

they need to rewrite documentation
I wish it was the primary task :devil:

chainik_svp -any news about improvements to scene change detection?

Sorry, it's summer time :)

Keiyakusha
14th August 2012, 21:30
and I've no idea what else we could do :confused:

Implement mdegrain in renderer part and anything else from mvtools that isn't in SVP yet?

So far this is limited and only partially true:
SVPflow is a successor to MVTools2, providing more speed and more quality

Reel.Deel
15th August 2012, 02:18
Implement mdegrain in renderer part and anything else from mvtools that isn't in SVP yet?

So far this is limited and only partially true:SVPflow is a successor to MVTools2, providing more speed and more quality.


To be fair, Chainik_svp did post a disclaimer.


Disclaimer.
SVPflow isn’t a complete replacement for MVTools cause it’s missing most of additional functions. As of now the main goal of project is to provide fast and high quality real-time video conversion, so all functions unnecessary for this task was cut off and sources were cleared and refactored.


Later on, he went on to say this:

Again, I'm not trying to completely replace MVTools, so MDegrain and other things are not in my interests now ;)
But it's not a big deal to add "delta" param so if someone thinks it'll be useful I could do that.

------------------------------------------

@ chainik_svp

it's summer time :)

Enjoy your summer!!:D

Keiyakusha
15th August 2012, 03:33
To be fair, Chainik_svp did post a disclaimer.
Why you telling this to me? Tell it to those who want to "use SVP in complex scripts". Personally I'm not interested in this project that much.

kolak
15th August 2012, 20:40
@ chainik_svp

Enjoy your summer!!:D

+1 :thanks:

johnmeyer
9th October 2012, 04:57
[Edit]See later post (http://forum.doom9.org/showpost.php?p=1594927&postcount=128) for more up-to-date attempt (which still doesn't work ...).

Trying to replace MFlow in a motion-compensated dirt removal script, but not succeeding. Here's the original function:

function RemoveDirtMC(clip,int "limit", bool "_grey")
{
_grey=default(_grey, false)
limit = default(limit,6)
i=MSuper(clip,pel=2)
bvec = MAnalyse(i,isb=false, blksize=8, delta=1, truemotion=true)
fvec = MAnalyse(i,isb=true, blksize=8, delta=1, truemotion=true)
backw = MFlow(clip,i,bvec)
forw = MFlow(clip,i,fvec)
clp=interleave(forw,clip,backw)
clp=clp.RemoveDirt(limit,_grey)
clp=clp.SelectEvery(3,1)
return clp
}

And this is my attempt to re-write:

function RemoveDirtMCSVP(clip,int "limit", bool "_grey")
{
svp_flow_lib="C:\Program Files\AviSynth 2.5\plugins\MVTools\SVP Version\libflowgpu.dll"
_grey=default(_grey, false)
limit = default(limit,6)
i=MSuper(clip,pel=2)
bvec = MAnalyse(i,isb=false, blksize=8, delta=1, truemotion=true)
fvec = MAnalyse(i,isb=true, blksize=8, delta=1, truemotion=true)
backw = MSmoothFps (clip,i,fvec, bvec, algo=1) #These two lines appear to be the problem
forw = MSmoothFps (clip,i,fvec, bvec, algo=1)
clp=interleave(forw,clip,backw)
clp=clp.RemoveDirt(limit,_grey)
clp=clp.SelectEvery(3,1)
return clp
}


I think the problem is that, despite what the SVP doc says, MSmoothFPS doesn't really encapsulate ALL of the functionality of the various MVTools2 functions.

My purpose in doing this is initially to improve performance, but also perhaps also (eventually) improve quality by adding some of the refinements in the updated MVTools2 (which I installed) and SVP itself.

Any help would be appreciated. Thanks!

Reel.Deel
9th October 2012, 05:04
Hi John, to succesfully use SVP with MVTools2 you have to use SVAnalyze and SVConvert.

From the documentation (http://svp-team.com/wiki/Plugins:_SVPflow):
SVConvert(vectors, isb: bool) Convert SVAnalyse output to the format of MAnalyse compatible with "client" MVTools 2.5 functions.

vectors - motion vectors data produced by SVAnalyse function,
isb - which vectors to extracts: forward if isb=false, backward if isb=true.

Example:
super = SVSuper(super_params)
vectors = SVAnalyse(super, analyse_params)

forward_mv = SVConvert(vectors, false)
backward_mv = SVConvert(vectors, true)

super_mv = MSuper(pel=1, hpad=0, vpad=0) #padding should be zero here!
MFlowFps(super_mv, backward_mv, forward_mv, num=60, den=1)



* Edit *

Also, for SVSuper, SVAnalyze, and SVConvert you only need svpflow1.dll.

johnmeyer
9th October 2012, 05:11
Hi John, to succesfully use SVP with MVTools you have to use SVAnalyze and SVConvertI have used that code in other projects, but I was lead to believe that the special MVTools2 build available at the SVP project site lets you use MVTools2 vectors. Here's the sample code that is included with that download:

SetMemoryMax(1024)

pel=2
recalc=true

svp_flow_lib="..\libflowgpu.dll"
LoadPlugin ("..\mvtools2.dll")

SetMTMode(3,10)
DirectShowSource("path\to\video.avi")
ConvertToYV12()
SetMTMode(2)

super=MSuper(pel=pel)
finest=pel==1 ? super : MFinest(super)

backward_vec=MAnalyse(super, isb=true, blksize=16, overlap=4)
forward_vec=MAnalyse(super, isb=false, blksize=16, overlap=4)

backward_vec = recalc==0 ? backward_vec : MRecalculate(super, backward_vec, blksize=8, overlap=2)
forward_vec = recalc==0 ? forward_vec : MRecalculate(super, forward_vec, blksize=8, overlap=2)

MSmoothFps(super, backward_vec, forward_vec, finest=finest, num=60, den=1, algo=13, sadml=200, blend=false)

The implication from the last line in this code is that MSmoothFPS can use the vectors from this version of MVTools2.

While I'm awaiting further replies, I'll try your suggestions. Also, this is a later version of my attempt to get it to work (but still not working):


function RemoveDirtMCSVP(clip,int limit, bool "_grey")
{
svp_flow_lib="C:\Program Files\AviSynth 2.5\plugins\MVTools\SVP Version\libflowgpu.dll"
_grey=default(_grey, false)
limit = default(limit,6)
i=MSuper(clip,pel=2)
bvec = MAnalyse(i,isb=false, blksize=8, delta=1, truemotion=true)
fvec = MAnalyse(i,isb=true, blksize=8, delta=1, truemotion=true)
backw = MSmoothFps (clip,i,fvec, algo=1,num=0, den=1,block=false)
forw = MSmoothFps (clip,i,bvec, algo=1,num=0, den=1,block=false)
clp=interleave(forw,clip,backw)
clp=clp.RemoveDirt(limit,_grey)
clp=clp.SelectEvery(3,1)
return clp
}

Reel.Deel
9th October 2012, 05:19
Ahh I see, you're trying to use the SVP MVTools (http://svp-team.com/wiki/Plugins:_MVTools2) and not the SVPFlow plugin, correct?

johnmeyer
9th October 2012, 05:23
Ahh I see, you're trying to use the SVP MVTools (http://svp-team.com/wiki/Plugins:_MVTools2) and not the SVPFlow plugin, correct?Yes, but my goal, as I stated above, is to improve performance and, possibly, quality. Therefore, I am not "stuck" on doing it this way. The reason I decided on this path is that it looked like I might not only be able to improve the performance in this part of the script, but also another part that uses MDegrain. I know there is a way to use SVP with MDegrain, even though it is a barely-supported afterthought to the main goal of the project (frame interpolation), but using this special MVtools2 build seemed like it might be more direct and have fewer problems.

Still working on it ...

johnmeyer
9th October 2012, 06:31
Getting closer, but still no joy. The video is 16 fps progressive. This looks like it should work, but I don't think algo=2 does anything different than algo=1. Neither line interpolates anything, but instead just gives me the original. I can change num to 32 and then get interpolation. I suppose I could do this for this frame, do the same thing for the previous frame (trim(last,0)) but that seems wrong somehow.

In the code below, the

interleave(backw,clip,forw)

line gives me three identical frames, i.e., I'm not getting an intermediate estimated frame as I would get with MFlow.

function RemoveDirtMCSVP(clip,int limit, bool "_grey")
{
svp_flow_lib="C:\Program Files\AviSynth 2.5\plugins\MVTools\SVP Version\libflowgpu.dll"
_grey=default(_grey, false)
limit = default(limit,6)
i=MSuper(clip,pel=2)
bvec = MAnalyse(i,isb=true, blksize=8, delta=1, truemotion=true)
fvec = MAnalyse(i,isb=false, blksize=8, delta=1, truemotion=true)
backw = MSmoothFps (clip,i,bvec,fvec, algo=2,num=16, den=1,block=false)
forw = MSmoothFps (clip,i,bvec,fvec, algo=1,num=16, den=1,block=false)
clp=interleave(forw,clip,backw)
clp=clp.RemoveDirt(limit,_grey)
clp=clp.SelectEvery(3,1)
return clp
}

Didée
9th October 2012, 09:46
The behavior is correct. MSmoothFPS is a framerate changer. And the wrong filter for what you want to do.

You have a 16fps clip. If you use num=32,den=1, then MSmoothFPS converts 16fps to 32fps by inserting 1 interpolated frame between each two original frames.
If you set num=16,den=1, then MSSmoothFPS converts 16fps to 16fps, by doing nothing. That's perfectly fine. ;)

What you need to use is MFlow, or (rather) MCompensate. But not MSmoothFPS / MFlowFPS.

johnmeyer
9th October 2012, 15:17
What you need to use is MFlow, or (rather) MCompensate. But not MSmoothFPS / MFlowFPS.I have come to the same conclusion. However, the reason I thought this would work was the following statement on the SmoothVideo Project MVTools 2 Page (http://www.svp-team.com/wiki/Plugins:_MVTools2):
MSmoothFps [is] a completely new function that encapsulates MFlow, MFlowFps and MBlockFps functionality and with GPU support enabled is almost indefinitely faster than MFlowFps.
So, wanting to get better performance, and being a reasonable person, I took this to mean that I could get this "indefinitely faster" performance when estimating forward and backwards prior to using an external denoiser, in this case RemoveDirt.

I still think there might be a way to do what I want if I first decimate every other frame, then use MSmoothFPS to double the framerate from this decimated version and, following that step, use what is now an interpolated frame. This will certainly work, but I don't know how to get the estimation to work both in the backward and forward direction. Maybe I can get the second estimated frame that I need by working on a clip that is played backwards ...

So, if I get some time later today I'm going to try this route.

[edit] Oh, upon further thinking, decimation followed by interpolation won't work at all because it's like using a delta of 2 and the estimated frame won't be very accurate, even though it will be in the correct temporal position.

chainik_svp
11th November 2012, 01:06
johnmeyer
Sorry I'm too late...

By "encapsulates MFlow" I meant "it can replace MFlow in 'low-end' motion interpolation scripts", like this:
===
f50=src.MFlow()
interleave(src,f50)
===

Thanks for pointing me to the other use cases of MFlow.
May be it'll be implemented in some future version cause this's rather simple to add :)

Still you can use SVAnalyse's vectors with MFlow...

=======
BTW that one-way compensation (with MFlow) can't take any real improvements from GPU acceleration cause it's just trivial.

johnmeyer
11th November 2012, 01:56
Thanks for the reply!

kolak
12th November 2012, 11:01
chainik_svp any progress in SVP development?

chainik_svp
12th November 2012, 11:15
chainik_svp -any news about improvements to scene change detection?

could you remind me what's wrong with scene detection? :)

kolak
12th November 2012, 17:26
Well- not reliable- you (or SubJunk) also said this :)
Can you borrow code from eg x264? It's just not working very well- when set to low it misses scene changes, when set to high than there are false detection in the middle of one the scene and motion is broken.

SubJunk
13th November 2012, 00:48
kolak: After thinking about it a lot, I think 100% accurate scene-change detection is impossible. The reason is just that in high-action scenes, two frames in the same scene can be as different as a scene change even though they aren't a scene change. So it means any program will always struggle.
However, this works out to be a good thing in my opinion because if we try to interpolate two frames in the same scene that are very different, the results will be even worse than a simple frame-blend, because there is nothing to estimate from, so every estimate will be incorrect and look funny with warps, tearing, etc.
Those are my thoughts anyway

Nick [D]vB
13th November 2012, 00:53
Hi all, I've only just discovered SVP, I have not had time to test anything yet but it looks very interesting.

Sorry if this has been asked before but I was just wondering if you could use DGDecNV to fully accelerate all the non-avisynth stuff?

http://neuron2.net/dgdecnv/dgdecnv.html

Would it help reduce CPU usage much, has anyone tried it?

thanks

SubJunk
13th November 2012, 03:09
I used to use it all the time, it does increase the speed of loading/reading the input file.

Nick [D]vB
13th November 2012, 19:57
But not the CPU usage so much?

SubJunk
13th November 2012, 21:31
Yeah it would lower the CPU usage with this

Nick [D]vB
13th November 2012, 21:37
Cool, that's good to know.

TheSkiller
19th November 2012, 19:18
Hey all,

I'm experiencing a problem of constant crashing within 1-4 minutes into processing. I'm after a frame rate conversion from 59.94 to 50. I have already narrowed down my script to something very basic, just to make sure it's not caused by something else.

I also removed all the SetMTMode() stuff, tried different SetMemoryMax() values – no luck.


I'm using AviSynth 2.6 (sET's MT), WinXP (32 bit), 3GB RAM, Core2Duo E8500 (3.16 GHz).

I should mention that I have never used SVSmoothFps before.


My basic test script which crashes VDub:

SetMemoryMax(800)
LoadPlugin("C:\svpflow1.dll")
LoadPlugin("C:\svpflow2.dll")

AVIsource("video.avi") #704x576, Ut video RGB24
ConvertToYV12()


super=SVSuper("{gpu:0}")
vectors=SVAnalyse(super, "{}")
SVSmoothFps(super, vectors, "{ rate:{num:50,den:1,abs:true}, algo:11 }",
\ url="www.svp-team.com", mt=1)

Usually I get no error message, but sometimes VDub's error message window pops up and says:
"An integer division by zero occurred in module 'svpflow2'...
...while running thread "Dub-I/O" (thread.cpp:150)."

I tried with and without GPU, different mt=x values within SVSmoothFps but still no luck.
I even emptied my complete plugins folder to make sure it's not caused by some unexplainable incompatibility with some other plugins.
I have absolutely no clue what else I could do or whats wrong. :(

leeperry
19th November 2012, 19:33
hi there, I'm currently in the market for an artifacts-free double frame rate interpolation script, what's the easiest way to use this package for this very purpose please? I'd be using ffdshow in realtime, feeding madVR+Reclock.

also, I understand that this package is GPU accelerated...sounds good! Could you also make it output P016 somehow in order to feed madVR with the cleanest signal?

:thanks:

chainik_svp
20th November 2012, 10:18
TheSkiller
Try to set scene.mode=0 in SVSmoothFps params
I know "adaptive" mode (which is by default) has a bug when converting from 50 to 60 fps, may be this's the case

what's the easiest way to use this package for this very purpose please?

Consider installing SVP and runing it :D

TheSkiller
20th November 2012, 18:41
chainik you're the man! Mode:0 does the trick, it's no longer crashing, thanks. :cool:

The quality of the frame rate conversion is pretty impressive as well – I can hardly tell a difference even when stepping through the 50 fps result frame by frame in VDub. I don't mind one or the other blended scene change since it's impossible to notice in normal playback speed.

mark0077
21st November 2012, 20:15
hi there, I'm currently in the market for an artifacts-free double frame rate interpolation script, what's the easiest way to use this package for this very purpose please? I'd be using ffdshow in realtime, feeding madVR+Reclock.

also, I understand that this package is GPU accelerated...sounds good! Could you also make it output P016 somehow in order to feed madVR with the cleanest signal?

:thanks:

After I install Windows on any machine, I get the required svp dlls from the interframe discussion page and put them in a directory (I usually put them under my player, eg mpc-be C:\Program Files (x86)\MPC-BE\SVP), and simply add one line to ffdshow avisynth page, which is basically the default interframe avsi file, with some small modifications I use specifically for my machine to choose varying quality depending on input resolution. ie

Import("C:\Program Files (x86)\MPC-BE\SVP\InterFrame_custom.avsi")

Kaotech
15th December 2012, 11:30
Hello,

I use LSF for sharpen, and when SVP running, my sharpen code is erased.

How to set up SVP to keep the LSF sharpen ?

TheSkiller
15th December 2012, 11:49
Post your script.

Kaotech
15th December 2012, 11:54
The script is generated automatically by SVP when running video, but this script erase my lsf sharpen.

I would like to input LSF code when svp generated the ffdshow.Avs or svp don't generate the code every time in avisynth

Avisynth :

Try {
svppath="C:\Users\PCHC\AppData\Roaming\SVP 3.1\"
import(svppath+"AVS\ffdshow.avs")
delim=":"
WriteFileStart(svppath+"Logs\SAR.txt", "ffdshow_sar_x","delim","ffdshow_sar_y")
WriteFileStart(svppath+"Logs\avsFPS.txt", "FramerateNumerator()", "delim", "FramerateDenominator()")
}
Catch(err_msg) {
ffdShow_source().Subtitle(err_msg)
WriteFileStart(svppath+"Logs\AVSError.txt", "err_msg")
}

ffdshow.avs :
svp_scheduler=true
SetMemoryMax(1024)

LoadPlugin("C:\Program Files (x86)\SVP\plugins\svpflow1.dll")
LoadPlugin("C:\Program Files (x86)\SVP\plugins\svpflow2.dll")

threads=7
SetMTMode(3,threads)
ffdShow_source()
assert(width==1920 && height==800,"Frame size "+string(width)+"x"+string(height)+" instead of 1920x800")
SetMTMode(2)
LanczosResize(1280,534)

super_params="{scale:{up:0},gpu:1,rc:true}"
analyse_params="{main:{search:{coarse:{distance:-10},bad:{sad:2000}}},refine:[{thsad:65000}]}"
smoothfps_params="{rate:{num:5,den:2},algo:23,cubic:1,mask:{cover:80},scene:{}}"

super=SVSuper(super_params)
vectors=SVAnalyse(super, analyse_params)
smooth_video=SVSmoothFps(super, vectors, smoothfps_params, mt=threads, url="www.svp-team.com")
smooth_video
distributor()

Kaotech
17th December 2012, 12:05
The solution :

Check "Program files\SVP 3.1\AVS\MSmoothFps.avs" wink

SVP directly copy the code to output AVS script.