Help - Search - Members - Calendar
Full Version: Re-encoding MPEG1 (VCD)
Hydrogenaudio Forums > Digital Audio/Video > General A/V
billcow
I have a bunch of VCD-encoded files laying around, and seeing as MPEG4/DivX/XviD can obtain much higher quality at much smaller sizes, I would like to re-encode these as MPEG4. Obviously any transcoding effort will result in reduced quality, but what sort of encoder settings should I use to optimize quality?

Specifically in the realm of actual encoder settings, but if there are any filters that would improve quality or allow smaller sizes with similar quality.

The files aren't of the greatest quality so a signifigant amount of artifacts will be tolerable, especially if they mask or are masked somewhat by the artifacts from the original encoding.

If it matters, I'm using VitrualDubMod for encoding, although I can use AviSynth for pre-processing if it will help.

Help will be much appreciated.
Latexxx
There is no idea of converting those files to mpeg-4. You will just loose some quality. If the original video's quality is crappy you can't gain more quality even by filtering it. It'll only cause the rest of your details to blur. If you still want to convert your videos to mpeg-4 you should use constant quality or quantizer.
ak
QUOTE
How to obtain similar quality

ffmpeg with -sameq smile.gif

QUOTE(ffmpeg)
Video options:
[...]
-sameq              use same video quality as source (implies VBR)
[...]

For quick convertion of many vcd's, I think it could be handy. Upon some tweaking of video params it could supposedly give bearable filesizes as well.

Haven't played with it much, though.
wkwai
Different Video compression techniques adds different type of noises to the video and if you transcode the video to another format, the newly added noise may interfere with the old noise resulting in terrible results..
i4004
i have used nandub in 1pass mode (my usual) with such settings for video;

CODE
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(710,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(460);
VirtualDub.video.SetCurveFile("");
VirtualDub.video.SetCurveMcFactor(0);
VirtualDub.video.SetCurveCompression(25,3);
VirtualDub.video.SetCurveFilter(270,6000);
VirtualDub.video.SetCurveCredits(0,350);
VirtualDub.video.SetLumaCorrectionAmp(0,10,30);
VirtualDub.video.SetCurveRedist(0);
// VirtualDub.video.CalcCurveCompression();
VirtualDub.video.SetCompLevelsMain(2,9);
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,35,30,80,45,0);
VirtualDub.video.SetLowBrCorrection(0,0);
VirtualDub.video.NoAVIOutput(0);
VirtualDub.video.GenStats("",0);
VirtualDub.video.SetEncodingControl("");
VirtualDub.video.filters.Clear();
VirtualDub.subset.Delete();
VirtualDub.brc.Set( 0, 645 );
VirtualDub.brc.Set( 1, 1 );
VirtualDub.brc.Set( 2, 128 );
VirtualDub.brc.Set( 3, 0 );
VirtualDub.brc.Set( 4, 1 );


copy paste this into video portion of nandub vcf file and see if it'll work with you..as you see,target bitrate was 710kbit/s...results were OK....
i use nandub with divx320......

this vcf file was called "nd-mpeg1TOdivx3.vcf"

you can try xvid too (p quantizers span 2-9) but i doubt it'll look as good as this....i dislike xvid.....

[edit:"subset" should be delete() and not my trim range=corrected]
niktheblak
I agree with Latexxx and wkwai, transcoding will only make things worse. Especially because your source is already heavily compressed low-bitrate video.

Unless you have pressing need to re-encode your material, I wouldn't recommend doing so. But if you're going to do it anyway, here's a few pointers:
  • Consider using some sharpening and/or mosquito noise removal filters. Also a 2d cleaner filter could help if the source has block artifacts.
  • I would advise you to use an officially MPEG-4 compatible codec, such as DivX 5 or XviD. You'll have much less problems in the future.
  • Constant quantizer mode is least likely to damage the quality of the source - but if you use a too low quantizer (=high quality and high bitrate), you might not gain considerable savings in bitrate.
  • You could also give the regular 2-pass mode in DivX 5 or XviD a try, it might not introduce too much additional artifacts.
Tommy Carrot
I've got quite good results with xvid constant quantizer 3 or 4 and b-frames enabled. The result filesizes are around 300 MB, and the quality degradations are not bothering.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.