Log in

View Full Version : Dropped Frames upon Scene Change - Help!


f1zz9i9
27th January 2002, 09:39
I am attempting to use Nandub to encode .vob's ripped with Smart Ripper using the DivX 3.11a codec (with the aim of 2 cd's). This is my first attempt at ripping a dvd, but i have read many, many pages of tutorials, faqs, and forum posts, and have followed these directions completely. I checked to make sure I had everything intact by playing the vfapi "fake"-avi with Media Player. Then I applied filters to crop and resize, and ran the first pass with Nandub. This went fine. I set all SBC Options as recommended (using the alternate SCD), saved the settings, and began the second pass.

Here's my problem:
On the second pass, everything goes smoothly for the first 20 seconds or so, with the projected filesize steadily increasing when suddenly, the output screen stops and the projected filesize drops to near nothing. Opening the completed .avi in Nandub, I noticed that at the point the output video had stopped, all frames from that point on are labeled as dropped frames. In looking closer at the "fake"-avi, I noticed the first frame dropped in the encoding is also the first frame labeled as a scene change in the "fake"-avi. So basically, as soon as Nandub encounters a scene change, it drops all further frames.


Here's the vcf:
VirtualDub.audio.SetSource(0);
VirtualDub.audio.SetMode(0);
VirtualDub.audio.SetInterleave(1,500,1,0,0);
VirtualDub.audio.SetClipMode(1,1);
VirtualDub.audio.SetConversion(0,0,0,0,0);
VirtualDub.audio.SetVolume();
VirtualDub.audio.SetCompression();
VirtualDub.audio2.SetSource(0);
VirtualDub.video.SetDepth(24,24);
VirtualDub.video.SetMode(3);
VirtualDub.video.SetFrameRate(0,1);
VirtualDub.video.SetIVTC(0,0,-1,0);
VirtualDub.video.SetRange(0,0);
VirtualDub.video.SetDivX(1461,10);
VirtualDub.video.SetQualityControl(0,0,0,0);
VirtualDub.video.SetMotionDetection(8,10,300,300);
VirtualDub.video.SetCrispness(30,0);
VirtualDub.video.SpaceKF(24);
VirtualDub.video.InternalSCD(100);
VirtualDub.video.SetMinKBPS(420);
VirtualDub.video.SetCurveFile("C:\\video_ts\\60seconds.stats");
VirtualDub.video.SetCurveMcFactor(25);
VirtualDub.video.SetCurveCompression(20,3);
VirtualDub.video.SetCurveFilter(270,4000);
VirtualDub.video.SetCurveCredits(160640,250);
VirtualDub.video.SetLumaCorrectionAmp(1,10,30);
VirtualDub.video.SetCurveRedist(1);
// VirtualDub.video.CalcCurveCompression();
VirtualDub.video.SetCompLevelsMain(2,6);
VirtualDub.video.SetCompLevelsA(300,3,16);
VirtualDub.video.SetCompLevelsB(300,4,16);
VirtualDub.video.SetCompLevelsC(300,5,16);
VirtualDub.video.SetCompLevelsD(300,6,16);
VirtualDub.video.SetCompLevelsE(300,7,16);
VirtualDub.video.SetCompLevelK(4,31);
VirtualDub.video.SetBitsReservoir(0,50,40,100,45,0);
VirtualDub.video.SetLowBrCorrection(1,1);
VirtualDub.video.NoAVIOutput(0);
VirtualDub.video.GenStats("",0);
VirtualDub.video.SetEncodingControl("");
VirtualDub.video.filters.Clear();
VirtualDub.video.filters.Add("null transform");
VirtualDub.video.filters.instance[0].SetClipping(10,58,7,60);
VirtualDub.video.filters.Add("resize");
VirtualDub.video.filters.instance[1].Config(640,272,4);
VirtualDub.subset.Delete();
VirtualDub.brc.Set( 0, 700 );
VirtualDub.brc.Set( 1, 2 );
VirtualDub.brc.Set( 2, 160 );
VirtualDub.brc.Set( 3, 0 );
VirtualDub.brc.Set( 4, 0 );

Any help or kick in the right direction would be greatly appreciated.

f1zz9i9

(The movie is "Gone In 60 Seconds", btw. Excellent movie.)

realSpiderman
4th February 2002, 10:24
Try the default Bit-Reservoir-Settings.