YMPEG: Fast MPEG-1/2/VCD/SVCD Codec

YMPEG: Fast MPEG-1/2/VCD/SVCD Codec

First Freeware MPEG Codec which can integrate itself with Windows OS and offers seamless encoding from your favorite application

Yusuf Motiwala < yusuf@motiwala.com >

Download YMPEG

YMPEG is Windows AVI codec. After installation, it becomes part of  Windows so that it can be used by any application which uses Windows Compression Manager (like VirtualDub, Adobe Premiere, AE, Vegas etc.).

YMPEG Supports:

  • MPEG-1, MPEG-2, VCD, SVCD (ISO/IEC 13818, 11172)
  • Audio Layer 1, 2
  • PAL/NTSC
  • Variable and Constant Bit Rates
  • etc. See configuration dialog below for lot more features

YMPEG Advantage:

  • Direct encoding from your favorite applications without any intermediate file or frame servers. This is most simplest way to create MPEG files. YMPEG is only MPEG codec which integrates with OS (as far as I know). 
  • Highest Applications Compatibility
  • Very good Quality
  • Fast
  • Rich set of options.
  • Very handy in converting to MPEG from other formats
  • SDK to integrate with your own software
  • FREE (However, can not be shipped with any commercial products, though they can link this page).

Initial implementation of YMPEG was based on various freeware implementation including BBMPEG and MPEG Software Simulation Group (MSSG) source code. However, current version of YMPEG is enhanced with much faster and sophisticated algorithms (but still experimental)  .

YMPEG produces good output at high speed though there is a big scope for enhancement.

Using YMPEG

To use YMPEG codec, you need to select YMPEG as video and audio compression codec from your application. Following is sample procedure for VirtualDub.

  1. Complete your editing. If requires, add appropriate resize filter.
  2. Select YMPEG as video compression codec from Video menu

 

  1. Click on Configure button to configure YMPEG codec. Make sure to configure output file name. 

  1. Click OK
  2. Select YMPEG as Audio compression codec from Audio  menu. Also select "Full Processing Mode"

 

  1. Select Appropriate Format and Click OK.
  2. Unselect Display options from Options menu (press F9, F10).

  1. Start compression by clicking 'Save A AVI' from file menu. The filename you enter here will be a dummy file generated by VirtualDub and will not be usable. Actual output file will be the one which you have configured in YMPEG Configuration Dialog.

Advanced Information (For Developers Only)

YMPEG Architecture

YMPEG architecture is modular, scalable and highly flexible. YMPEG is implemented in C++/C and Assembly. YMPEG has following components:

  1. YMPEG Core, provides video/audio encoding and multiplexing functionalities which can be used by any applications.
  2. YMPEG Applications, like Video/Audio codec, standalone encoders, multiplexers, configuration GUI etc. which interfaces with YMPEG core to perform various functions. Applications must be written in C++ in order to use YMPEG core (See description below).

YMPEG Core

YMPEG Core exports two interface for configuration and encoding operation.

  1. IYMPG, this interface provides various encoding functionalities.
  2. ISettings, this interface provides configuration functionalities.


Interfaces are C++ class and hence it mandates use of C++ for applications that like to use YMPEG. Using YMPEG in your own multimedia application can be as simple as adding two lines of code.

YMPEG Applications

Following are examples of some of YMPEG applications which uses YMPEG core to provide various encoding functionalities.

  • Stand-alone encoders
  • Video Codec
  • Audio Codec
  • Multiplexer

YMPEG core makes it very easy to develop new encoding application without worried about underlying details or algorithms.

Download

YMPEG 0.3 Alpha

  • You will require admin privilege to install YMPEG 
  • Disable any anti-virus during installation [You may want to check for any virus before installation]
  • Note that you are downloading Alpha version.

Note: This version does not have fastest YMPEG implementation.

Source Code

Under Review. Contact Yusuf Motiwala <yusuf@motiwala.com>

System Requirements

  • Windows 2000/XP (though may work in other Windows OS)
  • SSE Support in processor (PIII and later, Athlon XP and later)

Note: I used some SSE instructions and now I little disinclined to revert back -:). Anyway, with time to come, I am sure all PC's will have SSE support.

Linux and Other OS Support

YMPEG core is almost portable except for some assembly code which is assembled using Microsoft Assembler. To port this to Linux or any other OS, assembly portion needs to be converted  into GCC assembly format which is quite different from MASM format. At this moment, I do not have bandwidth to do so, considering the fact that YMPEG is still in Alpha stage. Let me know if you can help me with this.

Links to other MPEG Sites and Good MPEG Codecs

  1. MPEG Software Simulation Group (MSSG)
  2. bbMPEG
  3. tmpgEnc
  4. VirtualDub

History and Important Note

YMPEG was never intended to be released out of my PC, I just wrote it to test some algorithms. However, with current state of YMPEG, I though that it might be useful for others too and I may as well get some feedback. Hence, I added GUI and made it available in public domain. While your feedback is very important, I may not be able to support/answer each and every feedback I receive due to my other assignments. 

Problem??

Write me and I will try to help you as far as I can.


Yusuf Motiwala < yusuf@motiwala.com >