• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

DivX encoding TIPS

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.
Low-motion is always better if your using more than one CD for the movie, and if you want near DVD quality. The high-motion codec doesn´t increase the bitrate in low-motion scenes when you raise the bitrate, just in high-motion scenes. But even if you use low-motion@6000Kbit/s it wont be as good as DVD but on the other hand it´ll only be a third of the original size vobs.

How long is the movie you're encoding? How many CD's do you want it to fit on?
 
DO NOT waste you time with the Intel or AMD optimised version of Flask.
There is a version at digital-digest (called 004e) found on the flask download page that is MUCH faster then either of the others.
(you could also pick up a bit-rate calc that can help you figure out what rate to use with what sound rate and what size etc etc etc.)
 
Most of my DivX collection is encoded @ 910-1,500Kbits/sec with the Low-Motion codec and they are quite respectable. The most gains to be made quality wise are in the lower bitrates, not the higher ones. There is not a large difference in quality when above 1,500Kbit/sec, but the difference from 910 to 1,500 is quite noticable.
 
I create single-CD "backups" at 75% realtime (2 hour movie takes 3 hours to rip) with the 5.1 channel DD audio track downmixed to 2.0 channel Dolby Surround (Pro Logic) track and encoded at LAME 128k. Visual quality is indistinguishable from a DVD for slow-moving scenes, if seated 2 feet from the monitor - and fast motion scenes are roughly VHS or better. How do I do it? "Magic". 😉

Is DVD-ripping a science, an art, a technique? Definitely. Which one of the three is up to you. But what it is *NOT* is something that someone with no knowledge of the following can do well; how MPEG compression works, how the film industry masters DVDs, what 3:2 pulldown or IVTC is, how the VOB file format is constructed and how to seperate movie by VOB or CELL ID's, and on and on.

In short, you do need to know quite a bit to do the whole "DVD backup thing" properly. You can't just pop in a DVD, download flask (which you've never used before) and expect to have a nice 654mb AVI which gives Super VHS quality if viewed on your TV OUT. Uh-uh, it ain't happening dude. Better go get your DVD Club membership while it's cheap...

 
LocutusX: how about you fill us in with a little more details 😉

I have a P3 800EB and I would like the best quality under one file, which DivX encoder should I use? I don't care about ripping speed I just want nearest DVD quality. Also I have a couple of DVD rippers and when I tried to rip my green mile DVD a bunch of jarble came out. The picture was all messed up but the sound seemed to be fine. Any ripper along w/ DivX encoders recommendations?
 
High-motion is only good if you´re trying to fit a movie on a single CD IMO since it looks like crap most of the time.
 
so in simple terms

if i am going for high bit rate (2Mbps+) then i use LOW motion
and use HIGH for anything less?

 
Yep, thats basically it. Me personally, I always use low-motion, cause I can´t stand the blocky look of the high-motion codec. I´d rather lower the resolution and use low-motion, than stay at 640*480 with the high-motion codec.
 
If you guys care-

I've posted a quick lil commentary on Tom's usage of Flask as a benchmark tool and compiler optimizations.

Examining Flask as a benchmark tool

Anyone out there with a quality Compiler is hereby challenged to beat the numbers submitted with the crappy Microsoft Compiler.

Eric

 
The low motion codec is technically the standard. as is the 128kb/sec audio bitrate minimum. I believe it should be a 96kbit minimum because you want video quality more than you want audio quality from divx files.
 
LocutusX: Com'on man, share some of your "magic" with us. Else, give us some links to some literature where we can catch up on this art/science/technique/magic.

I've did some reading about the basic MPEG format and DivX already.

One problem that I have is trying to encode movies that are both interlaced and progressive. The quality of the progressive parts are near perfect, but for the interlaced parts (usually the action scenes) FlaskMPEG's deinterlacing doesn't work at all.

I also try to resize the movie with appoximately the same aspect ratio to utilize the bitrate. I also do a little cropping to prevent space from being wasted on the transition edge.

For a 3hr movie, I have a near perfect (good low-motion, horrible high-motion) on 1950MBs encoded at 2000Kbps and 1 keyframe/s low-motion DivX🙂 codec with 96Kbps MPEG3 audio.

How do I get "DivX audio"? All I have are MPEG3 audio codecs. I've installed the a bunch of DivX/MPEG4 codecs, but none of them came with DivX audio.
 
AC,

"Progressive+Interlaced" M2V (MPEG-2 Video) streams are the bane of any NTSC encoder. Flask is NOT appropriate for them. Anytime you introduce a deinterlacer into the equation, you reduce quality. Stick to Flask ONLY for "normal" Progressive *ONLY* NTSC movies. For the movies that the DVD mastering houses decided to use the progressive+interlaced technique, you have two options, to retain the most quality:

1. mpeg2avi
2. AviUtl

For mpeg2avi, you need to enable IVTC functionality. This is done by changing the framerate command line option to -f5 and trying out various -s options such as -s4 or -s3 (-s4 works perfectly for Sixth Sense, AFAIK). Some people say -f1 is better than -f5. But -f0 is reserved only for non-IVTC operations; i.e. not using the -sX command line option.

AviUtl is a very nifty Japanese encoder, similar to VirtualDub. At the moment it offers the only *PERFECT* IVTC implementation, so AFAIK it is the only encoder capable of handling *all* progressive+interlaced NTSC video streams. It has a very slow Auto-IVTC feature which does this. Beware, it's very slow. That figure of 75% realtime I posted previously gets thrown out the window if you use this (that figure is using mpeg2avi on a progressive-only movie, resizing to 512xYYY, and using -o8 color mode, on a P3-810 in Win2K). Using AviUtl on a 3 hour movie took a T-Bird 800 about 26 hours to compress. Really!

Both utilities should be found using Google searches. Since mpeg2avi is a command-line utility with many options, I suggest you also look for a guide. For AviUtl, you'd need to find an English-translated version. For more info about the MPEG2 format, IVTC and NTSC, read up at robshot.com. I would give more tips but I have an exam to study for. Good luck...

Other "techniques" to maximise the quality of the rips include the following. You can search for them for more info. 😉

1. MM4 - Mixed MPEG-4
2. VKI - Variable Keyframe Interval (can be done by Lotus m4C encoder and a special build of mpeg2avi floating around)
3. Using Bilinear resizing as opposed to Bicubic resizing when DOWNSIZING a movie (which is what you do, 99% of the time, unless you're crazy) reduces the size of a file and improves overall quality. Bicubic is for increasing frame size.

I feel bad for not leaving you with a link of any sort, so here's one to a version of Flask compiled with the Intel C++ 4.5 compiler, featuring an x87 Fast FPU iDCT which is supposed to be IEEE-1180 reference quality (not that it makes a visible difference) but is actually faster than the MMX iDCT.

http://miha.peternel.homepage.com/idct.html
 
LocutusX,

I just started using mpeg2avi and it seems to be producing noticeably better divx rips than Flask, using its 32-bit MMX encoder (even 16-bit MMX is better but it's not that much slower than 32-bit). I've all but abandoned Flask and will stick with mpeg2avi. For the life of me, I can't understand why Tom (Tom's Hardware) doesn't get with the program! I'm getting better quality movies from mpeg2avi at 50% realtime (Celeron 520 (not celerymine) under win2k). So a 2 hr movies takes a few minutes over 4 hrs. With Flask that same movie took 15 hrs!

BTW, for people that don't know (I think LocutusX mentioned it in another thread), you should encode in lower resolutions to lower artifacting. I've personally tested this out. I encoded at 720x480 from a DVD and then encoded at 480x320 the same scene. The 480x320 scene looked much better from the point of artifacting (there was less) than the higher res clip. For a good technical explanation for doing this, check out divx-digest's quality-ripping articles.

Word of warning. The file size of the 480x320 scene was about 97% of the file size of the 720x480 movie. Don't expect to save disk space, but do expect to get higher quality.

-GL
 
Back
Top