Log in

View Full Version : AviSynth script that combines MVtools with SpotRemover


demesmaeker
15th August 2007, 18:04
Hey there,

I visited a site with a avisynthscript on it, and i can´t get it running. I also googled for it, but this problem is too specific, so I didnt find any results.

I want to get the "dustspots" off a 8mm film.

My actions untill now:
- installed avisynth 2.57
- downloaded spotremover
- downloaded MVtools

Make a notepadfile (test.avs)
This script is from the author, so I added only one line (the line with Avisource in it, because my source is avi and not mpeg2)

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

LoadPlugin("I:\-=installers=-\dgmpgdec149\DGDecode.dll")
LoadPlugin("I:\-=installers=-\Mvtools\mvtools.dll")

LoadVirtualDubPlugin("I:\-=installers=-\SpotRemover354\SpotRemover.vdf","SpotRemover",11)

# SRC = mpeg2source("D:\1_rebyata\reb.d2v")

AviSource("film8mm.avi")

FLT = SRC.Blur(1.58)
b_vec2 = FLT.MVAnalyse(isb = true, delta = 2, idx=1)
b_vec1 = FLT.MVAnalyse(isb = true, delta = 1, idx=1)
f_vec1 = FLT.MVAnalyse(isb = false, delta = 1, idx=1)
f_vec2 = FLT.MVAnalyse(isb = false, delta = 2, idx=1)
bf2 = SRC.MVCompensate(vectors=b_vec2, idx=2)
bf1 = SRC.MVCompensate(vectors=b_vec1, idx=2)
ff1 = SRC.MVCompensate(vectors=f_vec1, idx=2)
ff2 = SRC.MVCompensate(vectors=f_vec2, idx=2)
interleave( bf2, bf1, SRC, ff1, ff2 )

ConvertToRGB32()
SpotRemover("SSI:11 SSC:0 SKW:9 SLI:2 SLC:2 SLD:0 DLS:26 DLC:18 DPC:10 DSF:1 DSD:1 MTX:16 MTY:12 MTL:22 MDX:1 MDY:1 MIH:0 CBR:0 CCO:0 CSA:0 CBA:0 CSR:0 CSB:0 FCI:0 FCD:0 ","")
SelectEvery( 5, 1 )

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

If I run this script, mplayer classic says "I don´t know what "SRC" means (I:\test.avs, line 10)

This is probably something stupid, so I am sorry if it is something obvious.

I´ve been sitting on my 8mm videos (avi) for a year now. Every few months I am putting a lot of energy in filtering, but without the spots gone, I can´t find any rest.
I hope someone can help me out with this one.

Greetz,
Demesmaeker, Holland

Leak
15th August 2007, 18:31
Here's your problem:

# SRC = mpeg2source("D:\1_rebyata\reb.d2v")

AviSource("film8mm.avi")

You commented out the first line, which assigned MPEG2Source's result to "SRC", while your replacement gets automatically assigned to the "last" variable, but not "SRC".

Put a "SRC=" in front of your AviSource and it should work.

np: Yagya - Snowflake 10 (Rhythm Of Snow)

demesmaeker
15th August 2007, 18:34
Here's your problem:

# SRC = mpeg2source("D:\1_rebyata\reb.d2v")

AviSource("film8mm.avi")

You commented out the first line, which assigned MPEG2Source's result to "SRC", while your replacement gets automatically assigned to the "last" variable, but not "SRC".

Put a "SRC=" in front of your AviSource and it should work.

np: Yagya - Snowflake 10 (Rhythm Of Snow)

Aargl..how stupid of me!!!! Thanks man!
Now it says "MVAnalyse: Clip must be YV12 or YUY2. I saw this problem before, so I guess that I can find that somewhere on this forum! :)

demesmaeker
15th August 2007, 18:49
With this script it works almost perfect:

LoadPlugin("I:\-=installers=-\dgmpgdec149\DGDecode.dll")
LoadPlugin("I:\-=installers=-\Mvtools\mvtools.dll")
LoadVirtualDubPlugin("I:\-=installers=-\SpotRemover354\SpotRemover.vdf","SpotRemover",11)
SRC=AviSource("film8mm.avi").ConvertToYV12()
FLT = SRC.Blur(1.58)
b_vec2 = FLT.MVAnalyse(isb = true, delta = 2, idx=1)
b_vec1 = FLT.MVAnalyse(isb = true, delta = 1, idx=1)
f_vec1 = FLT.MVAnalyse(isb = false, delta = 1, idx=1)
f_vec2 = FLT.MVAnalyse(isb = false, delta = 2, idx=1)
bf2 = SRC.MVCompensate(vectors=b_vec2, idx=2)
bf1 = SRC.MVCompensate(vectors=b_vec1, idx=2)
ff1 = SRC.MVCompensate(vectors=f_vec1, idx=2)
ff2 = SRC.MVCompensate(vectors=f_vec2, idx=2)
interleave( bf2, bf1, SRC, ff1, ff2 )
ConvertToRGB32()
SpotRemover("SSI:11 SSC:0 SKW:9 SLI:2 SLC:2 SLD:0 DLS:26 DLC:18 DPC:10 DSF:1 DSD:1 MTX:16 MTY:12 MTL:22 MDX:1 MDY:1 MIH:0 CBR:0 CCO:0 CSA:0 CBA:0 CSR:0 CSB:0 FCI:0 FCD:0 ","")
SelectEvery( 5, 1 )

The only thing that is left is that the "debugger" of "Spotremover" is still on, so I dont see just the dust (that it detects really well!!), but I see blocks around it :)
Does someone know how to turn the debug function off?

Fizick
15th August 2007, 19:17
Spotremover is not free. Get support from author.

demesmaeker
15th August 2007, 19:22
Spotremover is not free. Get support from author.

Not free? Where did you see that?
I got the program from the authors homepage. Saw nothing about paying or so. Could download the program and it works fine (without saying it is a demo or so). I also did not see any options to buy a full version or so.
Maybe you are talking about a different version, or maybe the author changed his mind about asking money for it?
(or maybe I am just looking over it of course :P )

Authors website: http://konstant.freeshell.org/

Greetz, Demesmaeker

ps. I found out how to turn the debugger off by changing DSD:1 in DSD:0

Fizick
15th August 2007, 20:15
There is "Registration" section in help file.

So, buy it or replace by free DeSpot or other AviSynth filter

demesmaeker
15th August 2007, 20:22
This is a forum for people who are interested in videos and the problems they run in to, right?

Why wouldn´t i be able to talk about a problem with a "light version", if registering is a possibility (and not OBLIGATED)?

Who are you to decide if I have to buy a full version or shut up or find another program? I am talking about a part of the program that is available for everyone. Not about cracking or something like that. What i am talking about is 100% legal.

I don´t want other versions because I think this one is better.

Not to attack you, but your responses give me the feeling that you are pissed off at me for no reason. :(

Any way, I got it all worked. Without the full version. The "freeware version" is good enough for me!

greetz,
Demesmaeker

Didée
15th August 2007, 23:20
Any way, I got it all worked.

The script is wrong. Not your fault, though, but the author's one ...

WRONG: SelectEvery(5,1)

Correct: SelectEvery(5,2)

demesmaeker
16th August 2007, 05:16
The script is wrong. Not your fault, though, but the author's one ...

WRONG: SelectEvery(5,1)

Correct: SelectEvery(5,2)

Thanks for the remark. What is the difference between (5,1) and (5,2) ?

greetz,
Demesmaeker, Holland

JuanC
16th August 2007, 06:51
Who are you ...Fizick is the person you could thank for developing the latest features you use from MVtools, and the author of DeSpot, a very interesting alternative to spotremover. He is offering his free support to you on this very same thread.

demesmaeker
16th August 2007, 07:03
Fizick is the person you could thank for developing the latest features you use from MVtools, and the author of DeSpot, a very interesting alternative to spotremover. He is offering his free support to you on this very same thread.

I see him telling me to buy something else or to try another tool. Not that I don´t think his work is great. I just don´t want any one but my mother to tell me what to do ;) I just asked for help on a "lightversion of a program", and I don´t think "buy the full version, or try another program" is a friendly response.

Fizick, no hard feelings, thanks for all the hard work you put in the tools you work at! I wish I could do that. Last time I programmed anything, was a game in gwbasic :)

Greetz, Demesmaeker

Didée
16th August 2007, 07:11
What is the difference between (5,1) and (5,2) ?
With Select(5,1), the processed frame "bf1" is returned. That's the wrong one. You want to return the processed frame "src", which you get with SelectEvery(5,2).

_____ 5 frames ______
/ \
bf2, bf1, SRC, ff1, ff2

0 1 2 3 4

demesmaeker
16th August 2007, 07:23
[QUOTE=Didée;1034397]With Select(5,1), the processed frame "bf1" is returned. That's the wrong....QUOTE]

:thanks: