Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Re-encoding MPEG1 (VCD) (Read 5361 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re-encoding MPEG1 (VCD)

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.

Re-encoding MPEG1 (VCD)

Reply #1
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.

Re-encoding MPEG1 (VCD)

Reply #2
Quote
How to obtain similar quality

ffmpeg with -sameq 

Quote
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.

Re-encoding MPEG1 (VCD)

Reply #3
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..

Re-encoding MPEG1 (VCD)

Reply #4
i have used nandub in 1pass mode (my usual) with such settings for video;

Code: [Select]
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]

Re-encoding MPEG1 (VCD)

Reply #5
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.

Re-encoding MPEG1 (VCD)

Reply #6
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.