SAMPEG-2 is a software only MPEG-1/2 video encoder targeted for optimum picture quality.
To achieve this, it uses scene change rate control, adaptive quantization and a rich
set of motion vector estimation algorithms.
It is parallelized to run efficiently on SMP machines with an arbitrary number of processors.
Moreover it is optimized to use MMX instructions on x86 processors and VIS on Ultra-Sparc
- supports variable and constant bitrate encoding
- creates streams with arbitrary resolution and bitrate
- reads multiple input formats:
- MJPEG-AVIs (created with Miro DC30, Fast AV-Master or similar video cards)
- uncompressed AVIs (as are usually created with popular TV-cards)
- Targa still image sequences
- PPM still image sequences
- supports direct grabbing through the Video4Linux API to allow realtime
encoding of a live video signal
- supports single frame grabbing and remote video source control such as
VCR control with infra-red commands. This allows below realtime encoding of
long video sequences from a high quality still image source.
- adaptive quantization using scene change recognition, activity and luminance masking
- fast, yet accurate DCT and IDCT algorithm
As the development of SAMPEG-2 is discontinued and SAMPEG-3 is now considerably stable,
I suggest that you use SAMPEG-3 instead.
Only if you need to encode MJPEG or uncompressed AVIs, this encoder may be handy.
- v0.6.5 source (The configure script is broken,
do not execute it! Please use the distributed makefile.)
- v0.6.5 binary
There is no documentation available at the moment. However, most options should be
self explaining. Here are some examples that get you started:
- Encode MJPEG-AVI to MPEG-1 with 1.5 Mbps:
sampeg -1 -R 1.5 input.avi output.m1v
- Encode PPM-sequence:
sampeg -1 -Y -R 1.5 input%03d.ppm output.m1v
- Real-time encode from V4L-input to MPEG-1 with 1.0 Mbps:
enc -1 -R1.0 -b -P -D0 -z 160x120 -N 3 dummy out.m1v
Note: there's no input file, but you have to give a dummy-string as input filename. '-N3' reduces
the framerate by a factor of 3. '-D0' disables all progress information display. Stop the
encoding by pressing CTRL-C. This will result in a corrupted end of the stream, but unfortunately
a cleaner way to stop encoding is not yet implemented. If you know the number of frames in
advance, you can specify this with '-e #' to get a fine stream.
There are also some publications on SAMPEG-2 available online at
For bug-reports or suggestions contact, send me an .