Xmpeg
Xmpeg is a tool for converting mpeg video from one format to another. We explain what the tool does and give recommendations for using it.
Xmpeg 4.2a Download
DivX 3.11 Download
DivX 5.02 Download
FlaskMPEG 0.594 Download
MP3 Codec - Lithium Download

Xmpeg (by Xis and Alberto Vigata, version 4.2a) is currently the best program for converting vob and vts files (which are usually from DVDs) to DivX format. There are several in-depth guides on the Internet so we won't be giving a step-by-step tutorial. Instead we will try to fill in the information which is usually missing from the guides. In this discussion, we assume you are using Windows2000 and have installed the Xmpeg program and both the DivX-3 and DivX-5 codecs.

Xmpeg has its roots in Flaskmpeg but is generally faster and more stable. It can read in mpeg-1, mpeg-2, and vob/vts format video. It outputs to any video codec which is on your operating system. Generally, you should expect to see video format options such as Cinepak, Intel Indeo, and uncompressed in addition to the DivX codecs.

Why would I want to use another codec other than DivX? In many cases, you would need to play the video back on different systems, which might not support DivX. Also, even if the other systems allow DivX installation, the CPU might not be powerful enough to decode the video in real time. The other formats such as Cinepak and Intel Indeo generally have lower system requirements but result in larger video files at the same quality levels.

Now we assume you have read in a video file and want to output a DivX-5 video. Note that the audio compression is separate from the video compression so the settings for each are under different menus. In general, we recommend setting the audio compression for "MPEG Layer-3" at 128Kbits/s at the same sample rate as the original (usually 48Khz for DVD and 44Khz for non-DVD). Second, for the DivX-5 codec, under the advanced parameters tab, set the "Performance/quality" to Slow or Medium. Some guides will recommend Slowest, but this can result in jerky video playback.

If you want to have a high quality archival version of the video, then under the DivX Codec tab, select the "1 pass quality-based" and set the slider bar to 97%. If you want a VHS quality video then set the slider bar to 95%.

If you are encoding interlaced video such as from a TV show, you will want to use the DivX Fast Motion codec with a bitrate setting of 1500. Set the fps to 23.976 and check the reconstruct progressive video switch. It is worth noting that versions 5.0 and 5.02 of the DivX codecs sometimes crash the machine or may produce output which can not be seeked or may be displayed with a periodic jerky motion.

Now we move to the "Global Project Options." Generally, Xmpeg selects the Frame size and Framerate correctly. In the "Post Processing" tab, select Format to be YV12; Filtering to be Bicubic; Aspect ratio to be "Keep aspect ratio."

If you wish to crop the video, deselect the option "No crop" and click on Show Output Pad. You should see a frame from the video and a bounding box which you can mouse drag. The area within the bounding box will be the output video.

If you wish to create a smaller version of the video, you should select a "Frame size" (under the Video tab) which has the same aspect ratio as the original and has a width and height which are multiples of 16 (which has to do with the limitations in the DivX codec).

To get smooth playback, we recommend the following: For film based movies, if it is NTSC DVDs (720x480)then use 23.976 fps and "reconstruct progressive frames." For PAL DVDs based on film(720x576), use 25 fps. Smaller resolutions (PAL: 440x352 or NTSC: 528x352 might give better overall visual playback quality when your bitrate is lower than 1,000kbps).

For interlaced DVDs such as from television shows, one solution is to create an avi movie using Xmpeg at 29.974 fps (NTSC DVDs) or 25 fps (PAL DVDs) and then use a tool like VirtualDub to remove the interlacing (i.e. a medium quality solution is to use the 2:1 pulldown filter in VirtualDub; a better solution in VirtualDub is to (1) use the deinterlace filter with the blend option or (2) pick the deinterlace filter with discard field and then follow it with a resize filter to get it back to original resolution).

The current release of Xmpeg is version 4.5. However, we don't recommend it because it has been unstable in our tests. Some of the observed bugs in version 4.5: it does not shutdown correctly and leaves a copy of itself running; it sometimes shows version 4.3 alpha in the title bar after doing some processing; the time required to process a long DVD can be wrong. In fact, version 4.5 will often only process a fraction of the complete movie. The main benefit of using version 4.5 is that it supports de-interlacing, however the implemented algorithm gives distorted output. They might want to try using the published algorithm from Philips Research which is used in the 100hz Philips televisions.

Version 4.2a has mostly stable for our tests. If it does crash, you should try encoding using FlaskMPEG 0.594 with the DivX 5.02 or MPEG-4 Fast Motion Codec. For a strange reason on large DVDs, Xmpeg may crash using the DivX 5.02 codec, but FlaskMPEG 0.594 will encode it correctly. Note that there is a bug in selecting the mp3 codec - you might only see 44.1Khz options when you need a 48Khz option. If this happens then setup the output options, start the encoding process, you will get an error which says that the audio is not at 48Khz. When you look at the codec configuration again, the 48Khz option will magically appear. Afterwards you can recompress the avi file using VirtualDub.

On some DVDs, Xmpeg will crash if you attempt to compress both audio and video in one pass of the program. However, Xmpeg may not crash if you compress video but choose uncompressed PCM as the option for audio.

Media Lab Overview
LIACS Homepage
MM Conf
ACM Multimedia
ACM ICMR
IAPR ICPR
Science Direct
IEEE Library
LIACS Publications
ACM Digital Library