digitalFAQ.com Forums [Archives]

digitalFAQ.com Forums [Archives] (http://www.digitalfaq.com/archives/)
-   Avisynth Scripting (http://www.digitalfaq.com/archives/avisynth/)
-   -   Avisynth: Parse Error - String Missing closing quotation mark (http://www.digitalfaq.com/archives/avisynth/6071-avisynth-parse-error.html)

KunGFu-L33t 10-13-2003 05:38 AM

Avisynth: Parse Error - String Missing closing quotation mark
 
Hey All...

Im trying to encode a tottally legal video i made this time :wink: (That wasn't sarcasm its a video of my trip to canada)

So i decided to try something different and use MA script, I play it in WMP and it gives me the following Error:

Parse Error: String Missing closing quotation mark

So i went thru the script and i found out the error was coming from this line:

ScriptClip("nf = YDifferenceToNext()"+chr(13)+ "nf >= SwitchThreshold ? \

On coloumn number 47 to be exact which is round about here:

............................+chr(13)+ .........................

>>??<< am i supposed to add something in here >>??<<

CheronAph 10-13-2003 06:14 AM

Copy and paste the whole script here!

KunGFu-L33t 10-13-2003 07:41 AM

Full Script
 
Indeed i will and here it is...


Code:

## Defined Variables and Constants ##
#
MaxTreshold = 1.50
nf =  0 # Current frame.
#
####

## Main section and static filters ###
#
AviSource("E:\Video's\Canada\niagara.avi",false)
#
undot()
Limiter()
asharp(1, 4)
LanczosResize(336, 144, 0, 0, 640, 256)
AddBorders(8, 72, 8, 72)
STMedianFilter(8, 32, 0, 0 )
MergeChroma(blur(MaxTreshold))
MergeLuma(blur(0.1))
#
#

## Linear Motion Adaptive Filtering ##
#
# ( Portions from AviSynth's manual ) - This will apply temporalsoften to
# very static scenes, and apply variable blur on moving scenes.
# We also assign a variable - and this is why a line break is inserted:

SwitchThreshold = (Width<=352) ? 4 : (Width<=288) ? 3 : 2
ScriptClip("nf = YDifferenceToNext()"+chr(13)+ "nf >= SwitchThreshold ? \
unfilter( -(fmin(round(nf)*2, 100)), -(fmin(round(nf)*2, 100)) ) : \
TemporalSoften( fmin( round(2/nf), 6), round(1/nf) , round(3/nf) , 1, 1)
#
#
#

#LetterBox( Your_Values_Here ) # Depends on situation. Use MovieStacker!
Limiter()

#
#
## Functions ###

function fmin( int f1, int f2) {
  return ( f1<f2 ) ? f1 : f2
}


Dialhot 10-13-2003 08:17 AM

Check if you do not have any spaces after the '\'' caracters in line "Scriptclip" and "unfilter"?

Then remove the quote that is in the source file (Video's).

KunGFu-L33t 10-13-2003 09:03 AM

spaces and "'" Gone still dont work
 
i got rid of the spaces after "/" and took out the ' but i still get

parse error, string missing closing quotation mark: Line 30, coloumn 47


:evil: :evil: :evil: :evil: :evil:

im using avisynth 2.5.2 if this makes any difference

Dialhot 10-13-2003 09:08 AM

And without the space after the second '+' on line 30 ?

KunGFu-L33t 10-13-2003 09:09 AM

I got rid of that space just then exact same problem but on coloumn number 46 now

Dialhot 10-13-2003 09:12 AM

Are you sure you do not have avs2.5.1 ?

KunGFu-L33t 10-13-2003 09:14 AM

Definatly

Krassi 10-13-2003 09:23 AM

Can you please post your complete "corrected" script :?:
If i remember well you should use Legalclip() instead of Limiter() with a prior avisynth version.

Dialhot 10-13-2003 09:24 AM

What I do not understand is that LanczosResize need only 4 parameters and not 6. Thus you should have an error on this line.

So I have a problem : did you copy really the script you use or not ?

Change the name of your directory from "Video's" to "Videos" and try exactly this script :

Code:

AviSource("E:\Videos\Canada\niagara.avi",false)
undot()
asharp(1, 4)
BicubicResize(336, 144, 0, 0, 640, 256)
AddBorders(8, 72, 8, 72)
STMedianFilter(8, 32, 0, 0 )
MergeChroma(blur(1.50))
MergeLuma(blur(0.1))

SwitchThreshold = (Width<=352) ? 4 : (Width<=288) ? 3 : 2
ScriptClip("nf = YDifferenceToNext()"+chr(13)+"nf >= SwitchThreshold ? unfilter( -(fmin(round(nf)*2, 100)), -(fmin(round(nf)*2, 100)) ) : TemporalSoften( fmin( round(2/nf), 6), round(1/nf) , round(3/nf) , 1, 1)

function fmin( int f1, int f2) { return ( f1<f2 ) ? f1 : f2 }

(note that all from "Scriptclip" to ",1)" must be on a single line !)

jorel 10-13-2003 09:28 AM

please,copy and paste to your script and test:

SwitchThreshold=(Width<=352)?4:(Width<=288)?3:2
ScriptClip("nf=YDifferenceToNext()"+chr(13)+"nf>=S witchThreshold?\unfilter(-(fmin(round(nf)*2,100)),-(fmin(round(nf)*2,100))):\TemporalSoften(fmin(roun d(2/nf),6),round(1/nf),round(3/nf),1,1)

....no spaces between anything!


"Video's" to "Videos" is a great hint too(like Phil recomendations)
:!:

Dialhot 10-13-2003 09:30 AM

Quote:

Originally Posted by Krassi
Can you please post your complete "corrected" script :?:
If i remember well you should use Legalclip() instead of Limiter() with a prior avisynth version.

LegalClip is for avs2.0x, Limiter for avs2.5x. So no problem there.

Krassi 10-13-2003 09:34 AM

Quote:

Originally Posted by Dialhot
Quote:

Originally Posted by Krassi
Can you please post your complete "corrected" script :?:
If i remember well you should use Legalclip() instead of Limiter() with a prior avisynth version.

LegalClip is for avs2.0x, Limiter for avs2.5x. So no problem there.

Yep Phil, you're right. I've only read your comment "not using avisynth 2.5.1" and thought he would be using 2.0x :oops: . Sorry.

CheronAph 10-13-2003 11:24 AM

Re: Full Script
 
Quote:

Originally Posted by KunGFu-L33t
Indeed i will and here it is...

SwitchThreshold = (Width<=352) ? 4 : (Width<=288) ? 3 : 2

Doesn´t that line always have to be,

SwitchThreshold = (Width<=352) ? 4 : (Width<=480) ? 3 : 2

Dialhot 10-13-2003 11:28 AM

Yes, you're right, I didn't notice this.

jorel 10-13-2003 01:05 PM

Re: Full Script
 
Quote:

Originally Posted by CheronAph
Quote:

Originally Posted by KunGFu-L33t
Indeed i will and here it is...

SwitchThreshold = (Width<=352) ? 4 : (Width<=288) ? 3 : 2

Doesn´t that line always have to be,

SwitchThreshold = (Width<=352) ? 4 : (Width<=480) ? 3 : 2

oh yes,i see too Cheron,
but the source is "niagara.avi" and
i don't understand anything about .avis or divx sources,
then i "stay in silence"!
:oops:

KunGFu-L33t 10-13-2003 04:54 PM

I used Dialhots Script it came with the same error on line 11 coloumn 46...

Tried with jorels idea of no spaces, same error line 11 coloumn 44

and yes this is the exact script i am using

jorel 10-13-2003 05:35 PM

try again please...copy and paste:

ScriptClip("nf=YDifferenceToNext()"+chr(13)+"nf>=S witchThreshold?unfilter(-(fmin(round(nf)*2,100)),-(fmin(round(nf)*2,100))):TemporalSoften(fmin(round (2/nf),6),round(1/nf),round(3/nf),1,1)")

it's a single line without spaces!

...i think that is the
")
in the end of the line!

:wink:

CheronAph 10-14-2003 12:55 AM

I think I´ve found it, you´re missing this quotation mark,
TemporalSoften( fmin( round(2/nf), 6), round(1/nf) , round(3/nf) , 1, 1) ")
Just copy and paste this line!

KunGFu-L33t 10-14-2003 01:51 AM

THANKS! You guys Rock!...

Well that fixed that problem

Thanks for all your help again it looks great :D

KunGFu-L33t 10-14-2003 03:28 AM

hey guys i found a diff prob now :cry:

i can play the video and watch it no prob but at the bottom in grey writing "Script Error: there is no fuction called unfilter" flashes every now and then,

whats wrong with my code now?

Code:

AviSource("E:\KVCD\Work\niagara.avi",false)
ConvertToYV12()
FlipVertical()
undot()
asharp(1, 4)
GripCrop(352, 240, overscan=1, source_anamorphic=false)
GripSize(resizer="LanczosResize")
STMedianFilter(8, 32, 0, 0 )
MergeChroma(blur(1.50))
MergeLuma(blur(0.1))


SwitchThreshold = (Width<=352) ? 4 : (Width<=480) ? 3 : 2
ScriptClip("nf=YDifferenceToNext()"+chr(13)+"nf>=SwitchThreshold?unfilter(-(fmin(round(nf)*2,100)),-(fmin(round(nf)*2,100))):TemporalSoften(fmin(round(2/nf),6),round(1/nf),round(3/nf),1,1)")
GripBorders()


function fmin( int f1, int f2) { return ( f1<f2 ) ? f1 : f2 }


Dialhot 10-14-2003 04:09 AM

The message is cristalin : you are missing the plugin Unfilter.dll !
DL it and put it with all other plugin.

KunGFu-L33t 10-14-2003 07:05 AM

thats the thing i got "UnFilter.ddl" in my plugin's directory i just doubled checked then.

Dialhot 10-14-2003 07:21 AM

You have Unfilter.dll or Unfilter.ddl in your directory ?

Double check also the spelling. The message is clear : avisynth doesn't find the dll, so there must be a problem there.

KunGFu-L33t 10-14-2003 07:32 AM

Sorry its .dll but its UnFilter.dll, could it be the caps?

Dialhot 10-14-2003 07:39 AM

Not at all. Avs does not relies on the name of the plugin (else it will never find GripCrop because it is included in GrifitPreview_YV12.dll ! :-))

It loads everything that is in the plugin directory and llok for the name of the function that are declared in these dll.

You should check if you have DL the correct version of the DLL, if the read permission is set on the file.

KunGFu-L33t 10-14-2003 07:48 AM

8O YES DIALHOT I COMPLETLY UNDERSTAND YOU :lol:

All i know is that i downloaded the 2.5 version from this site...

http://www.trbarry.com/UnFilter.zip

and i put all the files in the 2.5 Alpha Folder inside the zip into my avisynth 2.5 plugins directory

Boulder 10-14-2003 08:07 AM

Did you extract the paths too? IIRC, the UnFilter dll is in a specific folder in the zip file. If you extract the file with "Use folder names" checked, the dll file ends up in a wrong place, such as c:\program files\avisynth 2.5\plugins\2.5 alpha\ whereas it should be c:\program files\avisynth 2.5\plugins\ .

KunGFu-L33t 10-15-2003 02:40 AM

No the dll is in the plugins folder for avisynth

Dialhot 10-15-2003 03:02 AM

Do a simple test with this script :
Code:

Avisource("the name of your avi")
Undot()

If it works, You definitely have a type mismatch somewhere in you're script. That's the only explanation.
Else, the filter isn't in the right directory.

Boulder 10-15-2003 03:35 AM

Quote:

Originally Posted by KunGFu-L33t
and i put all the files in the 2.5 Alpha Folder inside the zip into my avisynth 2.5 plugins directory

You should only have DLLs and .AVSI files (if any) in the plugin folder! Other files may cause you problems, at least it was this way some time ago.

CheronAph 10-15-2003 03:52 AM

Like this,

LoadPlugin("E:\-=[ KVCD ]=-\Filters\Mpeg2dec.dll")
LoadPlugin("E:\-=[ KVCD ]=-\Filters\LegalClip.dll")
LoadPlugin("E:\-=[ KVCD ]=-\Filters\UnFilter.dll")
LoadPlugin("E:\-=[ KVCD ]=-\Filters\GripFit_preview.dll")
LoadPlugin("E:\-=[ KVCD ]=-\Filters\STMedianFilter.dll")
LoadPlugin("E:\-=[ KVCD ]=-\Filters\DustV5.dll")
LoadPlugin("E:\-=[ KVCD ]=-\Filters\DctFilter_YUY2.dll")
LoadPlugin("E:\-=[ KVCD ]=-\Filters\Convolution3D.dll")


Mpeg2Source("D:\DVDtoKVCD\vts_03.d2v")

LegalClip()

unfilter(50,50)
GripCrop(704, 576, overscan=3)
#TextSub("D:\DVDtoKVCD\vts_01.srt")
GripSize(resizer="BicubicResize")
STMedianFilter(8, 32, 0, 0, 8, 32)
#SpaceDust() # Optional - for some "not so clean" DVDs.
temporalsmoother(1,2)
mergechroma(blur(1.50))
mergeluma(blur(0.2))
#Convolution3D(preset="animeBQ")
GripBorders()

LegalClip()

Dialhot 10-15-2003 04:07 AM

Quote:

Originally Posted by Boulder
You should only have DLLs and .AVSI files (if any) in the plugin folder! Other files may cause you problems, at least it was this way some time ago.

I use to have all .dll and associated documentation (.txt or .htm) in the plugin directory and there is no problem with this.

Dialhot 10-15-2003 04:09 AM

Quote:

Originally Posted by CheronAph
unfilter(50,50)
GripCrop(704, 576, overscan=3)
#TextSub("D:\DVDtoKVCD\vts_01.srt")
GripSize(resizer="BicubicResize")
STMedianFilter(8, 32, 0, 0, 8, 32)
#SpaceDust() # Optional - for some "not so clean" DVDs.
temporalsmoother(1,2)
mergechroma(blur(1.50))
mergeluma(blur(0.2))
#Convolution3D(preset="animeBQ")
GripBorders()

LegalClip()

Never use "Textsub" in the middle of the script else the subtitle will be blured but the following filters and hard to read. It must be the last line before "GripBorders" (or just after if you want the subtitles in the black border and not on the image :idea:)

KunGFu-L33t 10-15-2003 04:39 AM

Dialhot i used your simple script you posted and it :evil: :x WORKED! :evil: :x .......

Here is my code again... whats rong with it...

Code:

AviSource("E:\Videos\KVCD\Work\niagara.avi",false)
ConvertToYV12()
FlipVertical()
undot()
asharp(1, 4)
GripCrop(352, 240, overscan=1, source_anamorphic=false)
GripSize(resizer="LanczosResize")
STMedianFilter(8, 32, 0, 0 )
MergeChroma(blur(1.50))
MergeLuma(blur(0.1))


SwitchThreshold = (Width<=352) ? 4 : (Width<=480) ? 3 : 2
ScriptClip("nf=YDifferenceToNext()"+chr(13)+"nf>=SwitchThreshold?unfilter(-(fmin(round(nf)*2,100)),-(fmin(round(nf)*2,100))):TemporalSoften(fmin(round(2/nf),6),round(1/nf),round(3/nf),1,1)")
GripBorders()


function fmin( int f1, int f2) { return ( f1<f2 ) ? f1 : f2 }

What i dont get is that i can watch the movie just it flashes the unfilter error in grey upside down, this has never occured to me within my whole KVCD encoding life (Which is about a week)

Dialhot 10-15-2003 05:07 AM

Quote:

Originally Posted by KunGFu-L33t
Dialhot i used your simple script you posted and it :evil: :x WORKED! :evil: :x .......

Lol. Welcome in the wonderful world of computing science :-)

Quote:

ScriptClip("nf=YDifferenceToNext()"+chr(13)+"nf>=S witchThreshold?unfilter(-(fmin(round(nf)*2,100)),-(fmin(round(nf)*2,100))):TemporalSoften(fmin(round (2/nf),6),round(1/nf),round(3/nf),1,1)")
GripBorders()
I know we told you the opposite last time but try to add some spaces :
Code:

ScriptClip("nf=YDifferenceToNext()"+chr(13)+"nf>=SwitchThreshold ? unfilter(-(fmin(round(nf)*2,100)),-(fmin(round(nf)*2,100))) : TemporalSoften(fmin(round(2/nf),6),round(1/nf),round(3/nf),1,1)")
We will find the solution ! :-)

Quote:

What i dont get is that i can watch the movie just it flashes the unfilter error in grey upside down, this has never occured to me within my whole KVCD encoding life (Which is about a week)
That's normal ! It's the meaning of "Motion Adaptative" ;-); The script adapts itself to the motion in the movie. In static scenes, it does a TemporalSoften. In quickly moving scenes, it does the unfilter (that is all the purpose of this weird "scriptclip" line).
That is why the error message flashes and is not constant : your movie has more static scenes than moving one, so the unfilter is rarely done.

Boulder 10-15-2003 06:08 AM

Hey Phil,

could you post your MA script that CheronAph asked for? I'd also be interested in checking it out.

Also, can you figure out how to use the MA script with interlaced sources? It's easily done with spatial-only filters but with temporal ones it's a bit more tricky.

CheronAph 10-15-2003 06:08 AM

Quote:

Originally Posted by Dialhot
Quote:

Originally Posted by CheronAph
unfilter(50,50)
GripCrop(704, 576, overscan=3)
#TextSub("D:\DVDtoKVCD\vts_01.srt")
GripSize(resizer="BicubicResize")
STMedianFilter(8, 32, 0, 0, 8, 32)
#SpaceDust() # Optional - for some "not so clean" DVDs.
temporalsmoother(1,2)
mergechroma(blur(1.50))
mergeluma(blur(0.2))
#Convolution3D(preset="animeBQ")
GripBorders()

LegalClip()

Never use "Textsub" in the middle of the script else the subtitle will be blured but the following filters and hard to read. It must be the last line before "GripBorders" (or just after if you want the subtitles in the black border and not on the image :idea:)

Ok, thanks!

Dialhot 10-15-2003 06:39 AM

Quote:

Originally Posted by Boulder
could you post your MA script that CheronAph asked for? I'd also be interested in checking it out.

You mean the MA script that I use personnaly ? I'll try to think about it this evening.

Quote:

Also, can you figure out how to use the MA script with interlaced sources? It's easily done with spatial-only filters but with temporal ones it's a bit more tricky.
I only have one source interlaced, so I'm not really the guy you need. I always do my test on it using fileddeinterlace, that's all.


All times are GMT -5. The time now is 05:48 AM  —  vBulletin © Jelsoft Enterprises Ltd

Site design, images and content © 2002-2024 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2024 Jelsoft Enterprises Ltd.