PDA

View Full Version : having problems with manual offset IVTC


BioMonk
13th June 2003, 06:08
Hi,

I've been using Avisynth for a while, although this is my first attempt at trying to manually write a script. I'm pretty familiar with Virtualdub et al, so I'm not really a newbie, but I wouldn't call myself an expert either. I've been reading the manual, browsing the forums, etc, but I just can't seem to figure this puzzle out. Any and all advice is most appreciated! Here's my problem:

I have a bunch of video streams (m2v) each with very few frames. I'm trying to IVTL them, but they're so quick that an adaptive IVTL really isn't cutting it. So, I need to do a manual IVTL. I've been using one of these m2v files as a test to get a template AviSynth script written to use for the others. With my test file, I can IVTL it (and all the others I've tried) perfectly with VirtualDub. It just takes a bit of trial and error to find the correct offset. So, I know that a standard pulldown method was applied.

Now, after all the reading I've done, the only way I can find to do a *manual* IVTL in AviSynth is with the following filters:

DoubleWeave()
Pulldown (a,b)

If I'm incorrect and there's a better (newer?) way to do this, please let me know. I've been using the "showfivefilters" example from the manual to look for the correct (a,b) values like this:

DoubleWeave()
a = Pulldown(0, 2).Subtitle("0, 2")
b = Pulldown(1, 3).Subtitle("1, 3")
c = Pulldown(2, 4).Subtitle("2, 4")
d = Pulldown(0 ,3).Subtitle("0 ,3")
e = Pulldown(1, 4).Subtitle("1, 4")
ShowFiveVersions(a, b, c, d, e)

but when I save the script and open it in VirtualDubMod, none of the 5 examples are correctly IVTL'd. This completely baffles me since I'm able to find a correct offset in VirtualDub when I open the m2v file directly. I've been pulling my hair out all last night and tonight, so I'd really appreciate any help as I didn't have that much hair left to begin with. lol. Why would virtualdub's manual offset work, but not one of the "showfivefilters" examples work?

thanks,
BioMonk

neuron2
13th June 2003, 08:27
Decomb supports complete manual specification of field matching. You can declare different patterns for as many frame ranges as you like.

Can you make available one of the m2v files that you claim cannot be IVTC'ed the way you described for us to inspect?

BioMonk
14th June 2003, 03:16
Thanks for the suggestion, I will look at Decomb a little more closely. Here's one of the files I'm talking about:

EDIT: url removed as I've now taken it offline

careful, it's a 46MB download.

As you can see, it will IVTL perfectly in Vdubmod with a manual offset of 4 and invert polarity unchecked. However, none of the streams displayed in showfivefields are IVTL'd correctly. Here's the script I've been using:

DirectShowSource("dls00.m2v", fps=29.97)
DoubleWeave()
crop(8,0,704,480)
BilinearResize(640,480)
a = Pulldown(0, 2).Subtitle("0, 2")
b = Pulldown(1, 3).Subtitle("1, 3")
c = Pulldown(2, 4).Subtitle("2, 4")
d = Pulldown(0 ,3).Subtitle("0 ,3")
e = Pulldown(1, 4).Subtitle("1, 4")
ShowFiveVersions(a, b, c, d, e)

Thanks a lot for taking a look at this. I really appreciate it.

bilu
14th June 2003, 04:05
Try

mpeg2source("D:\weird_clips\dls00.d2v",idct=2,cpu=0)
Telecide(guide=1)
Decimate(cycle=5)

I've downloaded and viewed your clip, it's an hard-telecined stream.
Didn't look enough to see if it was an hybrid clip though.


Bilu

neuron2
14th June 2003, 07:20
I can easily find the right pattern and I have no problem at all using Avisynth to IVTC this clip.

I used DVD2AVI 1.76 to create a NON FORCE FILM project file. Then I used mpeg2dec in this script (mpeg2dec3 also works):

loadplugin("d:\avisynthplugins\mpeg2dec.dll")
mpeg2source("dls00.d2v")
assumetff().doubleweave().pulldown(1,4)

I couldn't see anything wrong with it. Works as good as Decomb, until the pattern changes. :)

It must be a problem with DirectShowSource(). Why do you use that? It doesn't allow seeking, etc.

BTW, the Decomb 5 invocation for this is:

Telecide(order=1,guide=1,vthresh=65)
Decimate()

BioMonk
14th June 2003, 10:07
It must be a problem with DirectShowSource(). Why do you use that? It doesn't allow seeking, etc. You're right, Mpeg2source() IVTL'd it perfectly. Thanks for the tip. As I mentioned previously, this is my first time writing my own scripts for AVISynth. I was following the wiki manual on the AVISynth site, but it has no mention at all of Mpeg2Source(). It says that you have to use DirectShowSource() in order to open Mpeg2 files. lol... here I was trying to be good by reading the docs and figuring it out myself, and it throws me in a complete wrong direction. Similarly, it has no mention of decomb either. Oh well.

I'm still baffled as to why DirectShow Source won't IVTL it correctly. But it's a non-issue now anyway.

Thanks so much for all your help. I'll stick to the forums for answers from now on. ;)