Digital Digest
  • About the Author
  • Email
  • Disclaimer
  • Essential Links
  • Essential Tools
  • Ethics, Piracy & Philosophy
    Convert DVDs with Flask Mpeg
  • Extracting the DVD
  • Using FlasK Mpeg
  • Resizing in Flask
  • Convert DVDs with Mpeg2avi
  • Extracting the DVD
  • Using Mpeg2avi
  • Resizing in Mpeg2avi
  • Advanced DVD Conversion
    Convert DVDs with DVD2AVI
    Nandub SBC Encoding
  • Using Nandub
  • Using DivX 4.0
  • Audio / Video Editing
    Advanced VirtualDub
    Digital Video Capture
  • Video Capture: Part 1
  • Special FX Tutorials
  • Morphing Buffy Style
  • Star Wars LightSaber Effects
  • The Exorcist Effect
  • Other Video Formats
    VCD & SVCD Guides
  • DVD to VCD
  • AVI to VCD
  • Multimedia Guides
  • DivX with Subtitles
  • Mutilanguage DivX
  • Multimedia DivX Pt 1
  • Multimedia DivX Pt 2
  • Appendix / Tips
  • Aspect Ratio's
  • Resizing DVD's
  • DivX Quality Guide
  • Bicubic vs Bilinear Resizing
  • Deinterlace Method Test
  • Video Comparisons
  • WM8 Quality
  • Basic DVD Structure
  • NTSC / PAL & Interlace
  • AVI 4GB Limit
  • Key Frames & Delta
  • Monitor Setup Guide
  • FAQ's
  • Questions Answered
  • Downloadable PDF Guides
  • Glossary
  • Word Definitions
  • My Guides Translated
  • Go Here
  • DVD to VCD with Flask Mpeg

    Just in case you didn't know, VCD is about the oldest highly compressed video format we have and uses the Mpeg-1 codec. It generally gives the lowest overall quality picture when compared to DivX & SVCD's but can still produce near VHS quality video when split over 2 CD's. Another benefit is it can be played on just about every standalone VCD, SVCD and DVD player. Not only that but a VCD can be played on a PC with only 100Mhz CPU as long as it has the graphics card isn't really weak.

    The old way to make VCD's was to use Xing or the Panasonic Mpeg encoder and of course both encoders cost money to buy and were awkward to use with DVD's. But now since Flask Mpeg comes with the BBMpeg plugin there has been no reason to choose that path anymore. The free BBMpeg plugin produces slightly better quality then Xing and about the same quality or better as the Panasonic encoder. This quality is usually as good as most professionally made VCD's too so there is probably no need to change it. The only downside is its not an amazingly fast method.


    Various Methods of Making a VCD

    Before I go any further in explaining how to use BBMpeg you should know that there are a few other methods for making VCD's but all of them require that you Frameserve to the application you want to use! To frameserve with Flask you must check out my frameserving guide Here. Many prefer using TMPGEnc for making both SVCD's and VCD's and I see no reason to frameserve to any other application since its the best there is both for quality and features! I think it is a waste of my time to explain all of the methods you can use - you want the best ones, right :o). For more details on setting up TMPGEnc after you have frameserved to it just follow my guide: 'AVI to VCD'.

    In the good old days it was always very hard to convert a DVD to VCD without problems. These days its becoming much easier to do. I remember doing the Matrix was a big pain. I had to split the Vobs into parts and delete repeated sequences, slice it into parts - it took ages to work it all out! Nowadays you just open it in Flask and press go! But in my search I found one of the easiest method was to use the Panasonic Mpeg Encoder. So I think this method is worth a mention only because the same method works with many applications including TMPGEnc and you may find it useful to know sometime. By using this method it may be possible to cut out the frameserving completely and convert straight to SVCD or VCD! In reality, because of the way DVD's are made, this option is probably not the way to go :o(.

    All it required is you install the WinDVD Audio Filter and the Ligos Mpeg-2 Decoder Ligos Mpeg-2 Video Filter. Easiest way to install them is to use RegDrop. Just drag them over the utility like this:

    Or you can just use the DOS line command Regsvr32.exe (i.e.. regsvr32 "C:\folder\").

    After they are installed you should be able to open any DVD Vob file in TMPGEnc or Panasonic Mpeg Encoder and encode them! The first problem you will see is that Windows 9x only handles files of 4GB at a time! So if your DVD is larger than 4GB it wont do a whole movie. AVISynth is one solution to this because now you have the WinDVD and Ligos filters installed it will let you open all the Vob files in a long list. Check out how to use AVISynth Here.

    Flask Plug-in's

    Flask also lets you use a few other plug-IN's other than BBMpeg to convert to VCD. The most common one is the Panasonic MPEG1 Encoder Plug-In for Adobe Premiere5.x. Install the plugin like you would with Premiere. You don't actually need Adobe Premiere, just install the plug-in! When installing the plug-in choose a folder to store it; it doesn't really matter where. Once its installed find the plugin, it's usually called: cm-mpeg-pwi2.0e.prm. Copy and paste it into the Flask Mpeg folder and rename it to Actually it doesn't matter what you call it, Flask tries to use any plug-in that are named to

    All you need to do then is select the Panasonic option in Flask instead of BBMpeg. Up will pop the selection box, choose the Panasonic's VCD option - Bingo! You're done! The problem with the Premiere plugin is the quality is not quite as good as BBMpeg, although it's still nearly as good. It can sometimes also mess up some of your system codecs so you may need to reinstall some of them after if you get problems.

    Okay, you've seen the rest not see one of the best!


    The BBMpeg Method Explained

    Before I start you will need:
    Flask Mpeg 0.594 (or greater)

    As always, you must have the DVD files ripped and decoded to your Hard Disk first if you want to convert a DVD. You can use CladDVD or VobDec to do this but I prefer SmartRipper. They are all legal (because they do not use stolen DVD codes) so there is nothing to worry about. Flask has two basic conversion modes:

    Open File: This will open any mpeg file and try to convert it to whatever you want.
    Open DVD: This is a special mode that reads a DVD in the same way a DVD player would. This means you will be able to select to convert with subtitles; it will also make sure it only rips one angle in a multi-angle DVD. This prevents repeated scenes spoiling your movie!

    If you want to use Flask's 'Open DVD' mode you must copy the files exactly as they are on the DVD. This means you must rip them with SmartRippers file mode, do not use its movie mode. With VobDec or CladDVD you must turn off the multi-angle functions first - DeCSS is old and cannot do all DVD anymore, so don't use it!

    Also, if you are using Flask's 'Open DVD' mode you must copy the IFO file that belongs to the movie you wish to convert. This will be called by the same name as the first movie file. For example, if the first movie file is called VTS_01_0.VOB the IFO file to copy with it will be VTS_01_0.IFO. Remember, the main movie will not always have the same name. So if first file of the main movie were called VTS_02_0.VOB then the IFO file to copy with it will obviously also be VTS_02_0.IFO For more details on this subject read the article called "Introduction to the Structure of a DVD" in the appendix section.



    Select 'Open DVD' and find the .IFO file for your movie. Up will pop something like the picture below:

    Select the movie Duration, in this case 1.51.53. This will usually be the first one in the list, but you can usually see from the length which one to choose. Its a good idea to take a note of this time for later on. If you are not converting using the IFO file then get the length of the video from your PC DVD player (i.e. PowerDVD etc).

    Next choose the language. Obviously they cannot ALL be English so choose the first and encode one min of the film and listen to it. If its not English choose the next in the list, and the next and the next etc., until you find the correct one. Or open the DVD in a DVD player and see the order they are in, usually it will be the same.

    Lastly we have subtitles. I don't usually select any because I don't want them on my movie. If you choose subtitles then you will not be able to turn them off, they will ALWAYS be on your movie! Flask is not always able to do subtitles correctly, so again, you will have to try it and see. There are other ways to get subtitles, though; why not check out my subtitle ripping section for this.

    Now Press FlasK this DVD!



    Select Global Project options.


    Frame Size: In the Width and Height sections you can put the size you wish your final video to be. If you wish to crop your movie too you can select the 'Show Output Pad' at the bottom right. BUT your final movie size must be either 352 x 288 if your VCD is PAL or 352 x 240 if it is NTSC. So crop and resize how you like but make sure the final image is the right size.

    Time Base (fps): All PAL movies (European) are 25 frames per second (fps) no other setting will work. All North American movies are NTSC which means they are 29.97 fps, no other setting will work!

    iDCT Options: Just leave these alone its overkill to use IEEE and the quality will not look better.

    Video Structure: Do not check the deinterlace button unless you really need it because the video will decode very slow. For a full explanation of the interlace problem, check out my article: "Video Formats: NTSC & PAL / Telecine" in the appendix section.

    Deinterlace video
    For this kind of Deinterlacer blend gives best quality. The Threshold setting is basically how much it blurs problem lines. The lower the number the more it blurs it. If the interlace problem is really bad you should use a setting of 1-5 instead of 20. If its not very bad you could use 15-20.



    On to the Audio tab select 'Decode audio' if you want sound. You need to choose 44100Hz to be compatible with VCD standards.

    If you just want to copy the DVD's AC3 audio across instead of converting it you can use the 'Direct Stream copy' option. This could be the way to go if you have synch problems. But that way the audio must be decoded to wave using another method such as explained in my Mpeg2avi guide. Then you can use something like TMPGEnc to encode the audio to Mp2 and multiplex it to the video file. It is also possible to fix synching by opening the video in Cool Edit or another audio editing tool to stretch the audio a bit. Then you can again encode and multiplex. All this is a real pain in the neck so I hope you never need to try any of them.



    This section deals almost exclusively with resizing. Never use 'Nearest Neighbouring' unless you are not resizing the picture because the quality is crud. Contrary to popular belief Bilinear looks just as nice as Bicubic, except it is twice as fast. JASC (makers of Paint Shop Pro) recommend Bilinear for shrinking images and Bicubic for enlarging them. But use what you think looks best.

    Keep aspect ratio: PAL users should always tick this box unless you know you don't need it. This is even more important with Widescreen DVD's. If you use NTSC DVD's the image may become stretched slightly wrongly. If you notice this uncheck the 'keep aspect ratio' and work out the ratio yourself. See the article"Resizing DVD's with Correct Aspect Ratios" in my appendix. Don't forget that the final movie must be either 352 x 288 or 352 x 240 respectively.

    Crop & Letterboxing: All the settings for cropping and letterboxing the DVD can be entered here or the output pad can be used. For detailed information on how to resize a movie in Flask read section 2nd of this guide: "resizing the video". I suggest you don't mess about with all that though, just check the no crop and the no letterboxing options.



    Choose where you want to save your final movie. The audio save option is grayed out because you are encoding the video with audio in it. If you selected 'Direct Stream Copy' on the previous Audio Tab then you could say where you wanted it saved.



    Compiling Time: This is important. You must tell Flask how long the movie is. This is why I asked you to take note of the movie length. You must work out exactly how long the movie is. If you don't tell Flask the movie length could end up 300,000 frames even if your movie is only 30 seconds long! As you can imagine this is a big waste of time.

    There are 25 frames to every second of a PAL video and 30 for every NTSC. So lets say your PAL movie was one hour long. First you would work out how many seconds on an hour of video (i.e: 60 x 60 =3600 seconds). And then you would multiply that by 25 (i.e: 25 x 3600 = 90,000). You can also encode a small test clip to see the quality before you start. But I still recommend you shut down and restart Flask just before you start to encode a long movie to reduce chances of it crashing.

    Search Size: This searches the DVD for the audio. As it says, if you have problems make the number bigger. If all else fails and you cannot find audio you can try one of the other methods I explain in the section:"DVD Audio Extraction". This means you will need to encode the audio to Mp2 and multiplex it with the original with TMPGEnc or something like that. There is no fail-safe way to convert a DVD yet.





    Once you have finished setting up your movie just go to Run > Start Conversion.

    Up will pop BBMpegs info window showing the settings you put into Flask. Next choose the 'settings' option.

    Go to the Video Stream Settings option and choose the VideoCD (A) option below. If your movie is NTSC change the 25fps option (B) to 29.976. That's it!

    Now here is where you must use some restraint; the VCD format is very exacting. When we used the 'VideoCD' option BBMpeg sets the Whitebook standard. VCD doesn't allow you to set your own bitrate it must be a constant bitrate (CBR) of 1150kbps (1150000). The I, P and B frames are set to 15/3. The packing is 2324 and the audio is 16bit 44100Hz stereo 224kbps Mpeg-1 Layer 2 (Mp2).

    BBMpeg looks very difficult to use at first because it has lots of options but, at least for VCD, you cannot use them. The only ones we can safely change are the framerate to either 25fps or 29.97fps and what processor optimizations to use in the General Settings tab.

    Bingo! Thats it! Wait for the movie to finish, it should be anything upto 1480 MB in size to fit on 2 CD's! Don't worry, VCD's and SVCD's are not written to a CD-R in the same way we would write other data! CD-R's actually waste about 90MB in order to produce a filing system that we can use in Windows. This means that you can fit an Mpeg video of about 740MB on a single 650MB CD-R or 820MB for playing in a standard VCD player. The same idea has aways applied to any audio CD's you make. As long as it is 74 mins it doesn't matter how many megabytes the audio takes on your hard disk. Either way your CD-R burning software will usually tell you if the Mpeg is too large.

    Nero and Easy CD Creator are considered the best CD-R 'Burning' software for making both VCD's and SVCD's. Truth is they both have their problems. Nero sometimes burns SVCD's that are not compatable with certain players such as a Samsung. And Easy CD sometimes will not accept your Mpeg file!? This is very annoying! I do not have any of these problems because my player accepts the files no problems, but this is what I have told by Email. A lot of people seem to be using VCDImager and I would recommend that you try Nero or Easy CD first and then if you can't get them to work you should try VCDImager as it works with both VCD and SVCD. There is also a way to patch Nero images as explained in my FAQ's section.

    But wait! Before we can burn anything we need to chop our movie into two parts. For details on how to do this check out my 'Cutting and joining Mpeg's guide' Here. Once that's done you can burn them to CD and you're done!

    Duplication of links or content is strictly prohibited. (C) NICKY PAGE 2000