Log in

View Full Version : Repeated frames when capturing 352*576 on some tapes


kallekill
20th July 2003, 10:39
I have a weird problem when capturing with my VCR. I have been capturing at 352*576 without a problem from my video camera, but when I tried to capture at the same resolution from my VCR I get a lot of repeated and dropped frames, even at the preview window. I tried a different tape and I got no problems with that. Some tapes works fine and some I get alot of repeated frames with. The weird thing is I can capture all tapes at 640*480 without a problem. Does anyone know what could be the cause of this?

scharfis_brain
20th July 2003, 10:49
this is often caused by bad sync-impules of the VHS.

If you have a Bt8x8-based capture-card, you can try to capture with 574 or 572 lines or using the Bt-8x8-Tweaker for shifting the whole image down a few lines ("Top-Border"-Slider).
Both, reducing resolution and shifting image are helping the 8x8 to capture the bad signal without (with less) drops and repeated frames, beacuse the sync-impules and headswitching-errors aren't captured anymore.

kallekill
20th July 2003, 11:38
Thanks for the quick answer. I tried to caprure 352*574 and now it works fine. It's just that I'm planning to encode it to dvd later and then I have to capture 352*576 to get the fields right, I think. I'm making a interlaced mpeg2 out of it. I'll try the Bt-8x8-Tweaker (can I use it with Virtual VCR?) and see if it works or does it mess with the field order so that I can't encode it to mpeg2 interlaced correctly?

By the way I'm using the official drivers. Do you think changing to Btwincap drivers will help?

I have a Winfast TV2000 XP deluxe which I think is based on brooktree.

scharfis_brain
20th July 2003, 11:53
hmm. I don't know wheather the btwincap will improve things, or not, just try it out!


it is okay capturing 574 lines.
just add 2 black ones at the bottom of your video for getting a standard-576-lines Video! Normally the fieldorder isn't changed by capturing 574 lines instead of 576. And even if it is, you'll be able to correct this easily after capturing with avisynth.

btw: I recommend capturing @ 7xx*57(4/6) and later resizing and filtering to 352x576. The resize from 7xx to 352 will reduce a lot of the noise!

kallekill
20th July 2003, 12:20
I tried to capture 352*574 and then ecode it to mpeg2 352*576 using TMPG and it seems to work fine. I don't know exactly how TMPG adds the two lines. How do you suggest I add them? I just want to be sure that I don't end up with a weirdly interlaced movie. I have noticed that somtimes it looks good on PC but when you try it on a standalone dvd player it's not that forgiving.

I don't want to mess around too much with the drivers. I've heard that you might have to reinstall Windows if you try to install different drivers and I'm too lacy for that :)

I would have captured 720*576 if I had the space for it but I'm capturing HuffYUV so it takes up alot of space. I'm aming for 352*576 for another reason too because I want to fit 170 min on a dvd-r and I think I will get better quality by not using full dvd resolution. The source is crappy VHS anyway so I don't think it will look much better with a higher resolution. I'm going to apply a noisefilter during mpeg2 encoding to get rid of some of the noise.

scharfis_brain
20th July 2003, 12:33
you can use avisynth to add those two missing lines and noise removal.

avisynth will be faster than the internal noisereduction of tmpgenc!

And even a crappy-VHS-capture can be improved by capturing @ higer resolutions, because VHS has approx. 240 lines of horizontal resolution, which has to be digitized with at less 480 pixels for optimal results. So capturing at 480x574 will be a good choice for you.

a avisynthsript (AVISynth 2.0x) may look like this:
(assuming yourfile has 574 lines)

avisource("yourfile.avi")
loadplugin("x:\path\chromashift.dll")
loadplugin("x:\path\convolution3d.dll")
addborders(0,0,0,2) # adding the 2 missing lines

lanczosrezise(352,576) # resizing to half D1-resolution
chromashift(L=-2) # correcting the VHS-typic shift of chroma
convolution3d(preset="movieLQ") # reducing noise


Did you already check your m2v on TV to ensure that the fields are encoded correct?

kallekill
20th July 2003, 15:11
I don't have a standalone dvd-player so I can't see if it is OK, but it looks fine when playing it with Windvd. I have tv-out on my Geforce card but and don't know how to test it proparly. Most PC-mpeg2 decoders use deinterlacing and I don't know how the tv-out handles the picture.

I tried a clip before when I had captured 352*576 on a friends dvd player and it looked fine but it was somewhat jerky picture. It might have been some setting on the dvd player. It looked fine when played through a xbox though.

kallekill
20th July 2003, 15:45
I'm going to burn it on a dvd-rw and see if it plays fine in a friends dvd-player.

kallekill
21st July 2003, 17:59
I tried to add borders with Avi Synth but it won't recognize addborders as a command. It doesn't seem to like the convultion3d part either. My script is as follows:

source1=AviSource("1.avi")
source2=AviSource("2.avi")
loadplugin("C:\Program Files\AviSynth2\plugins\convolution3d.dll")
addborders(0,0,0,2)
convolution3d(preset="movieLQ")
return source1+source2


The source part is because I have multiple avi's that I want to join as one avi.

scharfis_brain
21st July 2003, 18:13
Your mistake was, to use the variables source1 & source2, but you never used them in your script!
You have to join both sources before filtering. After filtering is false, because avisynth doesn't which source to filter...

This script should work now.

source1=AviSource("1.avi")
source2=AviSource("2.avi")
source=source1+source2
loadplugin("C:\Program Files\AviSynth2\plugins\convolution3d.dll")
addborders(source,0,0,0,2)
convolution3d(preset="movieLQ")

kastro68
21st July 2003, 19:08
By the way I'm using the official drivers. Do you think changing to Btwincap drivers will help?


I strongly suggest that you do not use the btwincap drivers for this card.

You will lose the convenient functions of your remote and bundled software.

I have tried the btwincap drivers and did not not notice any discernable difference. The only pros I can find for using the btwincap drivers is that it works better with VirtualDub...however, I found virtualvcr just as good as virtualdub for capture.

kallekill
21st July 2003, 19:10
Ok. Thanks a bunch. I noticed that convultion3d was much faster than tmpg's noisefilter. When I used tmpg's filter it took twice as long as without the noise filter.

scharfis_brain
21st July 2003, 19:16
Originally posted by kallekill
Ok. Thanks a bunch. I noticed that convultion3d was much faster than tmpg's noisefilter. When I used tmpg's filter it took twice as long as without the noise filter.
hehe... as I said above. :D

please try some of the other noisereducers like peachsmoother, fluxsmooth etc.
also try to adapt the parameters yourself until you get optimal results since noise is NEVER the same.

conv3d is one of the slower filters. other denoisers are faster a lot.

kallekill
23rd July 2003, 11:15
After doing some more testing I've noticed that convolution3d blurs the image a little too much for my taste (with the Movie LQ anyway). I did as you suggested and captured in 480*568 (I lowered the vertical resolution a bit more to get fewer dropped frames and I noticed that it also removed most of the distortion in the lower part of the picture). After that I lanczosrezise to 352*576 and I get a very good picture with less noise. By going to 480 in horizontal resolution a get some black bars at the side of the picture that I would like to crop before I resize it to 352*576 but I'm not very good at AVI synth. Maybe you could help me out?

I tried this to crop 2 pixels on the left, 0 from top, 4 from right and 0 from bottom but it didn't go very well. I'm doing something wrong:

crop(source,2,0,4,0)


The complete script looks like this:

source1=AviSource("1.avi")
source2=AviSource("2.avi")
source=source1+source2
crop(source,2,0,4,0)
addborders(source,0,0,0,8)
lanczosresize(352,576)

scharfis_brain
23rd July 2003, 17:02
a new scripting mistake:

source1=AviSource("1.avi")
source2=AviSource("2.avi")
source=source1+source2
crop(source,2,0,4,0)
addborders(source,0,0,0,8)
lanczosresize(352,576)

you re-use the source variable. but it was not modified by crop.

now you have to ways to go:

source=crop(source,2,0,4,0)
addborders(source,0,0,0,8)

or

crop(source,2,0,4,0)
addborders(0,0,0,8)

both things do exactly the same!

kallekill
23rd July 2003, 19:10
Ok. I'm beginning to get the hang of this now :)

The only problem now is that I seem to have gotten the crop command all wrong. This is from the avi synth documents

Crop(clip, int left, int top, int width, int height)
CropBottom(clip, int count)

If I understand it right you have four integer numers as argument: left, top, width and height. But what does the with and height actually do? And how do I crop off the right side of the picture? I want to crop some pixels from the left and right and a little from the bottom. Then I'm going to add black lines with the "add borders"-command only to the bottom to still have the same number of lines.

I searched the Internet, but I didn't find a good source for learning about avi synth scripting.

scharfis_brain
23rd July 2003, 23:27
if your Video is 768x576 and you want to crop
4 px left
6 px top
8 px right and
10 px bottom

you can use those two identical cmmands:
crop(4,6,756,560)
or
crop(4,6,-8,-10)

I think everything is just fine documented in the avisynth help. just try some values an watch the results!

kallekill
24th July 2003, 01:10
Thanks for the help. I tried the clip in a friends dvd and it looked good. The movement was smooth and there were no signs of bad interlacing. I get some encoding artifacts though because the material is heavily moving handcamera most of the time and very noisy. I am aming to fit almost 6 hours of content onto 2 dvd-r's with a video bitrate of 3500 kb/s. I tried to lanczosresize the movie to 352*288 which is DVD standard if I remember correctly and I actually thought it looked better on the TV. The source is really blurry to begin with and by reducing the resolution to 352*288 I get far less encoding artifacts which were very noticable in some scenes with 352*576. I'll also get a progressive picture out of it. I'm going to investigate it further tomorrow. Guess I have one day more of testing before I can start capturing for real :(