Multimedia Conversion Library - Frequently Asked Questions

How do I start this application?
This is a programming library, not an application for end users. If you are not a programmer check out our other product, VideoMach.
What's the difference between the registered and demo version?

Demo version writes a short text over the output frames. That's the only difference, all other functions are enabled and you can create entire application using the demo version without purchasing the license key. Only if everything works and you're satisfied with MCL's performance buy a license key to get rid of the textual banner of the evaluation version.

How can I open an AVI encoded with a hardware-based codec if I don't have the video capture/encoding hardware installed on my computer?

Visit the web site of the video hardware manufacturer and see if they have a software version of the codec. If that's not the case try searching at the following web sites:

MJPEG codec:
Pegasus Imaging -

DV codec:

MainConcept -

Source for video codec and pixel format information: -

During debugging in Delphi I get "EMon" exceptions all the time. What's wrong?
"EMon" exception is normally used during opening and processing certain types of files. This is standard behavior. To make the debugger ignore these execeptions, in Delphi go to Tools => Debugger Options => Language Exceptions, click Add and enter EMon in the edit box. When you click OK you should see EMon in the list of exceptions to be ignored.
After starting your example my IDE reported "First-chance exception in example.exe (KERNEL32.DLL): 0x0EEDFADE". Is that some error in MCL?
The exception 0x0EEDFADE is used internally to silently exit from a try-except block. This exception is not a result of a program error, it's normal program behavior. If possible add this exception to your debugger's ignore list.
After using MCL from another thread I get error messages.
First of all, don't use MCL simultaneously in two or more threads. You can use it in a separate thread but make sure MCL functions aren't called from other threads. If the thread from which you call MCL isn't the main thread (and you get error messages) try calling CoInitialize in thread's initialization code.
I created a 352x240 pixels MPEG using your software, but when played the size is 720x480 pixels and it looks very pixelated. Is it a bug in your software?
No, it's a bug in the media player you use, or some DirectShow filter you installed. Several media components and players always resize MPEG videos to 720x480 or 720x576 even though the original size is different. You can use VLC Media Player to check the real size of the clip. Download it here:
The size of the output file is extremely large. How can I create smaller files?

Use MclSetVideoBitRate and MclSetAudioBitRate to define the data rate. The lower the data rate the smaller the file (and quality). The size of the file is:

size [in kilobytes] = data_rate [in kilobytes per second] * duration [in seconds]

When saving the output I get a file that contains only one frame. Since there are 100 frames on input shouldn't I get 100 frames on output too?
Not necessarily. If you call MclSetVideoKeepDuration with the value of TRUE it will try to keep the original duration which may change the number of frames if input and output frame rates are different. To keep the original number of frames call the same function and pass FALSE.
An error message "Bad Format" is reported when I try to create an AVI file.
You're probably using DivX codec. When queried, DivX reports that it can handle large images (say, 4000 x 3000 pixels), but when such an image is actually passed the codec crashes. Current versions of DivX can handle images up to 1920 x 1280 pixels. Newer versions may support larger images, or at least tell the truth when queried about it's limitations. If you are not obliged to use DivX there are other mpeg4 based codecs which support much larger images.
Outside Delphi IDE the library works well, but when testing inside IDE strange errors are reported. Are those bugs in MCL?
No. The library uses exceptions for internal communication, which can be intercepted by Delphi IDE. To avoid this switch off the "Break On Exceptions" in Delphi Environment Options.
Why Windows Media Player can't play the AVI file created with MCL?
WMP can't play files with frame rate equal to zero, so make sure you pass a positive non-zero value to MclSetVideoFrameRate.
Why Windows Media Player reports invalid duration of a MPEG-VCD, SVCD or DVD file created with MCL?
A: MCL allows you to encode VCD, SVCD or DVD MPEG files with an arbitrary video resolution, frame rate and audio format. But to create a file compatible with most of the software and hardware media players you must use the standard values. Find more info about this topic in MCL documentation in the "How to" section.
Can your library save MPEG-2 files?
A: Yes, if you enable it by calling the MclEnableMPEG2 function. This is a pre-caution that you don't accidentally turn on the MPEG-2 since there are royalties you have to pay if your application uses MPEG-2 standard. The seller of the end-user application which uses MCL library for creating MPEG-2 files is responsible for paying royalites to MPEG-2 patent holder(s).
When saving image sequence starting with "pic20020916001.bmp" (year 2002, month 09, day 16, picture 001) MCL doesn't increment the last number. Instead it addes the number after the "pic" part and before other numbers.
If the number in the file name is larger than 32-bit unsigned integer (2,147,483,647) MCL cannot detect it. A workaround is to change your output file name to "pic20010916-001.bmp" so that MCL can find out which part is the picture number (in this case the last three digits).
I tried to open a large file and the application stopped responding. Should I kill the application?
When the source is a large MPEG file the length of the video and audio must be checked because the MPEG header is unreliable (yet another flaw in the MPEG format). On a standard 52x CDROM opening a 700 MB MPEG file can take more than 20 minutes.
How to avoid visual artefacts when encoding MPEG files?

Increase the data rate using MclSetVideoBitRate / MclSetVideoByteRate and MclSetAudioBitRate.

What's the price of your library?
Download and install the libray, then click Start -> Programs -> MCL -> Pricing & Registration. Make sure you are installing the latest version, you can find it at this location.