bbMPEG.DLL and AVI2MPG2.EXE Version 1.0. By Brent Beyeler.
Released as freeware.

ABOUT

  bbMPEG and AVI2MPG2 are Windows programs that convert AVI files to MPEG-2
  files. They are freeware, and the source code is available although you
  will need Borland's OWL (Object Windows Library) and the ADOBE Premiere 5.0
  SDK to compile it as is.

  The software is freeware for three reasons:

  1 - I did not write the actual encoding routines (thanks to those that did,
  see below), I just integrated them into one GUI program and provided the
  ADOBE Premiere interface.

  2 - I would have to pay royalties if I charged for it.

  3 - It can be quite slow (12 - 17 seconds per frame on a Pentium 200 MMX,
  with default settings). The encoding process can be suspended and resumed
  so you can take a break once in a while if need be. If you need speed I
  would recommend getting DARIM's DVMPEG software (www.darvision.com).
  However in my experience it seems that their speed comes with a price of
  video that has more artifacts than bbMPEG does for a given bitrate.

INSTALLATION

  To use the software WITH ADOBE Premiere 5.0 (will not work with version 4.2)
  copy the file bbMPEG.DLL to your Premiere 5.0 plug-in directory and rename
  it bbMPEG.PRM. After doing this you should see it loaded when Premiere is
  started and it should be added as an output option.

  To use the software WITHOUT ADOBE Premiere, just create a folder, copy all
  of the included files to it, set up a shortcut to point to AVI2MPG2.EXE and
  run the shortcut.

  The file AVI2MPG2.EXE is basically a front end for the DLL so it can be
  used without having to have ADOBE Premiere. It just calls the DLL as
  Premiere would.

REQUIREMENTS

  bbMPEG requires Win95, Win98 or WinNT. It may work with Win31 if Win32s
  is installed but I have not tried it. It also requires a Pentium processor.

NOTES

  The speed of this software will vary greatly depending on the setting of
  the motion vector lengths. Generally, the more motion in the video the
  longer the lengths need to be to reduce artifacts.

  This software was written with the goal in mind of creating MPEG-2 program
  streams from AVI files captured by a MotionJPEG video capture board that
  could be played on the Creative Labs PC-DVD Encore DRX2 hardware. When I
  started work on this project I had version 2.0 of Creative Labs player and
  all worked correctly. Creative Labs came out with version 3.0 of their
  player and the audio stopped working. I still have not figured this out yet
  but I am hoping it is a problem with their player. The main reason I think
  it is Creative Labs player is that DARIM's DVMPEG has the same problem. If
  not I will update this program when I find out what the problem is.

  The MPEG-2 files do play correctly using the PowerDVD or SoftDVD software
  players.

  NOTE WHEN USING ADOBE PREMIERE 5.0

  If you use this software with ADOBE Premiere 5.0 be aware that Premiere
  will let you select non-supported audio formats (8-bit sample size or
  sampling rates not supported by this software). When you then export the
  project and start bbMPEG, bbMPEG will tell you that the audio format is not
  supported and will only encode the video portion of the project. The ADOBE
  Premiere 5.0 SDK has a section on how to inform Premiere of your supported
  audio types, but I could not figure out how to get it to work. The ADOBE
  Developer's Association would not answer this question without me shelling
  out $160 to join the ADA (I don't think so for freeware), maybe that's fair.
  The SDK says I need to pass it a pointer to a list of a certian structure
  type. What is a 'list of' a structure type? I guessed it would be an array
  of the structure type. Tried passing a pointer to an array of the structure
  type but that always crashes Premiere when you access the audio options. If
  anybody does know how this works PLEASE let me know.

  All testing was done on this software with AVI files that had the following
  specs:

    Video: 640x480 @ 29.97 (or 30) fps
    Audio: 16-bit 44.1 Khz stereo

  If you do encode other types of AVI files and run into problems, let me
  know and I will try to fix or help you fix the problem.

  The maximum video resolution supported is 1920x1152 (both values must be
  even, i.e. 2, 4, 6 .. 1920 x 2, 4, 6 .. 1152) and the audio encoding only
  supports 16-bit samples sizes and either 32 Khz, 44.1 Khz or 48 Khz
  sample rates.

  The software generates MPEG-2 (ISO/IEC 13818-2) video streams, MPEG-1
  (ISO/IEC 11172-3, layer 1 and 2 only) audio streams and MPEG-2
  (ISO/IEC 13818-1) program streams or any combination of the above. The
  software will NOT generate MPEG-1 video streams (even though the MSSG's
  software will). It will, however, multiplex MPEG-1 video streams into an
  MPEG-2 program stream (you can just do multiplexing if you want to, you
  don't have to encode video or audio).

CREDITS

  The video encoding was derived from MSSG (MPEG Software Simulation Group)
  MPEG-2 video codec, version 1.2. The audio encoding was derived from the
  MPEG/Audio Software Simulation Group's audio codec, version 4.0. The
  multiplexing was derived from Christoph Moar's MPLEX, version 1.1. Visit
  www.mpeg.org for links to all of the above software.

  Many thanks indeed to the above for providing the guts of the software.

QUESTIONS/COMMENTS

  If you have any questions or comments feel free to contact me at:

  INTERNET: beyeler@primenet.com
  CIS: 73457,3377

  Visit bbMPEG's web site at (source available here):

  http://www.primenet.com/~beyeler/bbmpeg.html

