Building the source code
The theory behind making MPEG movies
Generating the source movies
Encoding the video
Encoding the audio
Multiplex the streams
MPEG3CAT: a useful utility
Creating Microsoft compliant output
Troubleshooting
MPEG-4 encoding on a Linux box? NO WAY!
One of the better kept secrets of the internet is that what you know as
MPEG-4 is really a wrapper for MPEG-1 with some very minor
improvements. The improvement between MPEG-4 and MPEG-1 came from
optimizations Microsoft performed on the MPEG-1 compressor. Indeed the
compressor has the biggest impact on the quality of any format
regardless of the title of the standard.
MPEG-2 Movie allows you to synthesize very low bitrate audio and video streams from Quicktime movies and multiplex them into a single program stream. Since these MPEG-2 encoders are fairly obsolete and don't give the same quality as Microsoft, this package contains all the command line utilities needed, but no interface to integrate them all.
Linux 2.4.0Configure and build:
gcc-2.96 and above.
libc-2.1.94
NASM 0.98 and above.
Run ./configure in the top directory.
Run Make
There is no installation sequence. The programs are supposed to be run in their directories. Your best improvement is to modify the example script file.
MPEG-1 layer II audio
MPEG-1 layer III audio
MPEG-2 layer III audio
MPEG-1 video
MPEG-2 video
Encoding | Recommended Encoder | Input file format |
MPEG-1 layer II audio | audiomp2/toolame | Microsoft WAV |
MPEG-1 layer III audio | audiomp3/lame | Microsoft WAV |
MPEG-2 layer III audio | audiomp3/lame | Microsoft WAV |
MPEG-1 video | video/encode | Uncompressed Quicktime |
MPEG-2 video | video/encode | Uncompressed Quicktime |
The framerate you choose must be one of the following:
24000.0/1001.0 // Official rates supported by MPEG 24.0 25.0 30000.0/1001.0 30.0 50.0 60000.0/1001.0 60.0 1 // Supported by MPEG-2 movie but not by MPEG 5 10 12 15 |
By the way, a good way to synthesize Quicktime movies on Linux is
Broadcast 2000.
With the movie rendered, it's time to encode it.
Run encode in the video directory to get a parameter listing.
Desired content | Recommended input format | Recommended encoding parameters |
Internet documentary | 320x240 15fps | -1 -q 20 -n 300 -m 0 |
Internet trailer | 640x480 24fps | -1 -q 30 -n 300 -m 0 |
Fast motion low bitrate | 640x480 24fps | -1 -q 30 -n 300 -m 0 |
Still images low bitrate | 640x480 24fps | -1 -b 1000000 -m 0 |
Fast motion high bitrate | 720x480 29.97fps | -q 5 |
Still images high bitrate | 720x480 29.97fps | -b 5000000 |
Archive high bitrate | 720x480 29.97fps | -q 1 |
Desired content | Recommended encoder | Recommended encoding parameters |
Internet documentary | audiomp3/lame | -h -b 32 |
Internet trailer | audiomp3/lame | -h -b 64 |
48000Hz low bitrate | audiomp3/lame | -h -b 128 |
48000Hz high bitrate | audiomp2/toolame | -b 320 -m s |
Stream | Encoder | Encoding parameters |
Audio | audiomp2/toolame | -b 192 |
Video | video/encode | -1 -b 1000000 -m 2 |
Multiplex | mplexhi/mplex |
(C)2000 Adam Williams