To answer this question, I have to throw in a few more weird terms, but
trust me that I will bring it all back to together.
Elementary stream
Audio Bit Stream (.ABS)
Video Bit Stream (.VBS)
Mux or Multiplex
Program Stream Mux (MPEG or .MPG)
Transport Stream Mux (MPEG or .MPG)
Creating an MPEG file is actually a multi-step process. Here are the
steps:
1. Encode 0 or more audio ELEMENTARY STREAMS to create your AUDIO BIT
STREAM (.ABS) files. An audio elementary stream is an audio clip that
you want to transcode (change formats) into a different format. This
format could be a standard MPEG audio format or another supported format
like Dolby AC-3. We recommend products from Sonic Foundry for the
creation of .ABS files encoded in the AC-3 format. Many products out
there will allow you to play back both a .MPG file as well as a raw .ABS
file.
BONUS TIDBIT: You know those .MP3 files that people are using to
download and play back pirated audio files from over the Internet?
Well, an MP3 file is actually a standard MPEG Audio Bit Stream (.ABS)
file that has been encoded using the MPEG-1 Layer 3 profile. You encode
the audio stream using the MPEG-1 Layer 3 profile to create your .ABS
file and then change the extension to .MP3 to indicate the encoding
profile. You then play back that raw audio stream using your .MP3
player.
2. Encode 0 or more video elementary streams to create your VIDEO BIT
STREAM (.VBS) files. A video elementary stream is a video clip that you
want to transcode from a format like an Avid OMF, Media 100 QuickTime,
DPS Perception AVI, Matrox Digisuite AVI, standard QuickTime, or
standard AVI into an MPEG-1 or MPEG-2 stream.
3. Get your files ready for MULTIPLEXING. Multiplexing means taking at
least one .ABS or .VBS file and kind of "wrapping" it up so as to create
an MPEG file. You need at least one .ABS or .VBS to create what we call
a MUXed stream. This means that an MPEG file will contain at least an
audio or a video component or both. One muxed stream can contain up to
16 video and 32 audio streams. Multiplexing one stream is a relatively
simple process. Multiplexing multiple streams gets progressively more
difficult.
4. Decide whether you need to create a PROGRAM STREAM mux or a TRANSPORT
STREAM mux. 99% of the MPEG streams that are out there today are
Program Streams. This means that the files have been multiplexed for
play back from a CD-ROM, DVD, hard drive, or the Internet. A Program
Stream Mux will contain only limited error correction information
because the pipe between a CD-ROM or DVD and the CPU will be pretty
reliable. Transport Stream muxing generally comes into play when you
are a broadcaster and want to send an MPEG stream across a link that is
prone to errors (dropping packets). This generally means a satellite or
broadcast link - although it could also mean a noisy data network. Due
to atmospheric and other forms of interference, broadcast or satellite
transmission can lead to the loss of data packets. A Transport Stream
mux contains additional information that will allow the MPEG decoder on
the receiving end to handle gaps in the transmission sequence and
recover. Thsi means that a dropped packet may lead to a blip in the
image, but that the decoder will be able to recover and continue playing
back the stream.
5. MUX your files to create you .MPG or MPEG stream. This process
involves taking the .ABS files and the .VBS files to be multiplexed.
The basic idea is to take all of the audio and video elements and
interleave them together. This means that if you've got an audio and a
video stream that look like this:
[A1][A2][A3]
[V1][V2][V3]
You interleave them so that the stream looks kind of like this:
[A1][V1][A2][V2][A3][V3]
The point is to put the audio and video elements that will be played
back at the same time close together in the data stream. The
alternative is to concatenate the two streams like this:
[A1][A2][A3][V1][V2][V3]
As you can see, the problem with concatenating the streams is that you
can't play back any video until you have received all of the audio data
- this could be a lot of audio data and waiting time if you are looking
at a 1 hour video clip. When you are dealing with multiple, lengthy
audio and video tracks this can render the stream basically impractical.
It makes much more sense to interleave the streams so that you never
have to wait to long to receive the audio or video packet that you need.
Hope that helps,
Chris O'Leary
V.P. of Marketing
Heuris