PDA

View Full Version : Please Critique my VHS to DVD AVS Script(s)


rkr1958
14th August 2006, 03:56
Over the past three years I've converted around 40 or my VHS tape collection to DVD. Most of these have been my son's Disney movies. The process I use is:

1. VCR > Sony TRV-320 DV camera > PC (passthrough via firewire)
2. Capture using Ulead VideoStudio 6 (which I got off ebay for $20) and the Pansonic DV codec. The captured AVI is RGB24, 720x480, interlaced w/BFF, 29.97 fps.
3. Strip and edit audio using Goldwave. (The audio is encoded to ac3 using TDA 1.6 w/ac3 plug-in).
4. Encode video using CCE-Basic. I use 2-pass VBR with a minimum of 500 kbps & a maximum of 9500 kbps. The average is set to what will fit on a single-layer DVDR. Up to now, my avs script to CCE-Basic has just been used to trim the video and convert it from RGB24 to YUY2.
5. On my last convert I decided to be a bit more adventurous and try using some of the noise filtering plug-ins for AVSynth. All my avi captures to date have looked good without any filtering but I wanted to see if I were missing out on better quality.
6. So here's the script that I used to frameserve two of my most recent Disney VHS tape captures.

# Load Source Video
AviSource("G:\VHS_CAP\101_DALMATIANS.avi",audio = false).Trim(0,143246).ConverttoYUY2

# De-Interlace
SeparateFields()

# De-Noise
Convolution3D(1, 6, 10, 6, 8, 2.8, 0)

# Interlace
Weave()


8. The resultant filter video did look better in VirtualDub in serval frames than the raw source avi.

7. My encoding time with CCE-Basic for a 2-pass VBR increased from around 60 to 90-minutes per 1-hour of source to well over 3-hours per 1-hour of source.

8. The encoded and authored video did look better to me than previous conversions on both my TV and PC screen.

Also, what would be the expected differences between using the above script and this one,

# Load Source Video
AviSource("G:\VHS_CAP\101_DALMATIANS.avi",audio = false).Trim(0,143246).ConverttoYUY2

# De-Interlace
SeparateFields()

# De-Noise
odd=SelectOdd.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
evn=SelectEven.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)

# Interlace
Interleave(evn,odd).Weave

check
14th August 2006, 04:40
You could probably start using far more powerful deinterlacers than what you are using. Plain ol' weave is fast, but there are better alternatives.
One of the best I can suggest is TDeint (I'm assuming your source is PAL, if it's NTSC you will have to IVTC). There are a whole bunch of deinterlacers for you to try - that's just my personal preference. If you want to use an even higher quality deinterlacer, try mvbob() but be aware the encoding time will shoot up like a rocket.
Unless you know what you are doing, it might be a better idea to use the presets in convolution3d, which are pretty well made. Also experiment with other denoisers - each one gives different results and is better suited for different types of noise. Someone with more knowledge than me will hopefully be able to suggest some.

Trixter
15th August 2006, 04:44
Since the conversion to DVD is theoretically a one-time thing, I tend to go for FFT3DFilter(sigma=4,plane=4,interlaced=true) for noisy video, and sigma=3 for less noisy video (although I don't think there's such a thing as "clean VHS video"). If I really want to go for broke and it's a short clip, I mvbob() it first, then FFT3DFilter that with interlaced=false.

For telecined film transfers to NTSC, there is duplicated information in the videotape that can be used to perfectly reconstruct the 23.796fps film, and the extra field can even be used for "free" de-noising. Unfortunately, the 3rd extra field technique escapes me at the moment. Anyone?

rkr1958
25th August 2006, 19:17
Thanks for the responses. Now two follow-up questions, but first let me give some details.

1. (Script #1) VHS > DV Camera Passthrough > PC (Panasonic DV Codec). [The full avi load command is cropped off in 1,2 & 3 scripts. full command was: AviSource("H:\VHS_CAP\PINOCCHIO.avi",audio = false).Trim(0,157292).ConverttoYUY2] Note that the captured AVI is field-based video (not separated) w/bottom field first.

2. (Script #2) Used a script based on an original script first posted in this thread, http://forum.videohelp.com/viewtopic.php?p=949143&sid=fdc2cb608b36f75fd8a29ad108212e66#949143 , except no cropping. The resultant filtered AVI is listed as field-based video (not separated) w/top field first.

3. (Script #3) By swapping changing Interleave(evn,odd).weave() to Interleave(odd,env).weave() the resultant AVI is listed as field-based video (not separated) w/bottom field first as expected from the original script.

What am I missing here? Why doesn't script 2 give me BFF?

http://www.knology.net/~benrunyan/VHS_Script_TFF_BFF_Question.jpg

Boulder
25th August 2006, 21:05
In filter_1.avs you keep the order as BFF with Interleave(evn,odd) and then change it to TFF with DoubleWeave().SelectOdd(). In filter_2.avs you change the field order to TFF with Interleave(odd,evn) and then change it back to BFF with DoubleWeave().SelectOdd().

rkr1958
25th August 2006, 21:21
In filter_1.avs you keep the order as BFF with Interleave(evn,odd) and then change it to TFF with DoubleWeave().SelectOdd(). In filter_2.avs you change the field order to TFF with Interleave(odd,evn) and then change it back to BFF with DoubleWeave().SelectOdd().If I want to keep it BFF through, would this command (in filter_1) work? DoubleWeave().SelectEven() Or is the a more preferred way? Also, are there any issues if I were to encode the video with TFF?

Boulder
25th August 2006, 22:19
I wouldn't touch the field order at all because you can encode as BFF. That is, I would use filter_1.avs and leave the DoubleWeave().SelectOdd() out.

rkr1958
25th August 2006, 23:06
I wouldn't touch the field order at all because you can encode as BFF. That is, I would use filter_1.avs and leave the DoubleWeave().SelectOdd() out.Thanks. I will.