Create MPEG-1 System Stream with FFmpeg
This guide provides a straightforward tutorial on how to multiplex video and audio into an MPEG-1 System Stream container using the FFmpeg command-line tool. You will learn the specific FFmpeg commands, codecs, and parameters required to successfully output compliant MPEG-1 (.mpg or .mpeg) files for legacy hardware and compatibility needs.
Understanding MPEG-1 System Stream Requirements
The MPEG-1 System Stream (often designated by the .mpg,
.mpeg, or .dat file extensions) is a legacy
container format. To ensure strict compatibility and avoid muxing
errors, the container must contain specific codecs:
- Video Codec: MPEG-1 Video
(
mpeg1video) - Audio Codec: MPEG-1 Audio Layer II
(
mp2) or MP1
The Basic FFmpeg Command
To convert a modern video file (like an MP4) into an MPEG-1 System Stream, you need to transcode both the video and audio to their respective MPEG-1 compliant codecs and specify the MPEG muxer.
Run the following command in your terminal:
ffmpeg -i input.mp4 -c:v mpeg1video -q:v 4 -c:a mp2 -b:a 192k -f mpeg output.mpgCommand breakdown:
-i input.mp4: Specifies the input source file.-c:v mpeg1video: Encodes the video stream using the MPEG-1 video codec.-q:v 4: Sets the video quality scale (a lower number means higher quality; 1-31 range). Alternatively, you can use-b:v 1500kto set a constant bitrate.-c:a mp2: Encodes the audio stream using the mandatory MP2 format.-b:a 192k: Sets the audio bitrate to 192 kbps.-f mpeg: Forces the output format to be a standard MPEG-1 System Stream.
Creating a Standard-Compliant VCD Stream
If you are writing the MPEG-1 System Stream for Video CD (VCD) creation, FFmpeg provides a built-in target profile. This profile automatically handles all resolution, bitrate, GOP size, and format restrictions required by the MPEG-1 standard.
Use the target flag for automated configuration:
ffmpeg -i input.mp4 -target vcd output.mpgThis command automatically sets the video to MPEG-1 at 1150 kbps (352x240 for NTSC or 352x288 for PAL) and the audio to MP2 at 224 kbps, multiplexed perfectly into an MPEG-1 System Stream.