Media Converter
A desktop app that turns video and audio files into formats a PlayStation 2 running SMS can actually play. Drop a file in, pick a preset, get a file that works.
Download it from the releases page. There are three builds: Windows 10/11, Windows 7, and Linux. It needs FFmpeg available β either on the system path or alongside the app.
Why convert at all
The PS2 decodes a specific and quite old set of formats, and most files downloaded today use none of them. In particular H.264 will never play β the console's video hardware handles MPEG‑1 and MPEG‑2 only, and everything else has to be decoded in software on a 294 MHz CPU. Converting is not a workaround; it is how a modern file gets onto this machine at all.
Every output option the app offers is one SMS is known to handle. That is why the list is short: it is not a general-purpose encoder with a PS2 mode, it only makes files that work.
Presets
Each preset says what it is for and what it costs. If you are unsure, the first one is the right answer.
Video
| Preset | When to use it |
|---|---|
| Xvid‑Compatible AVI recommended | Start here. Best picture per megabyte, so files stay small and stream well over USB or a network share. |
| MPEG‑2 (.mpg) | Use if the Xvid preset stutters. The PS2's IPU chip decodes MPEG‑2 in hardware, so the CPU barely works and playback is the smoothest available. The trade is noticeably larger files. |
| MPEG‑1 (.mpg) | The most forgiving option, also hardware‑decoded. Picture quality tops out lower, but it is the lightest load of all. |
| MPEG‑4 MP4 | The same video as the Xvid preset, in a modern
.mp4 container with AAC audio. |
| MPEG‑4 MP4, small | 320×240 at a low bitrate β roughly a quarter the size. For memory cards, small USB drives, or when a full‑size file will not play smoothly. |
Audio
| Preset | When to use it |
|---|---|
| MP3 recommended | Start here for music. Plays everywhere, small, and the format SMS handles most cheaply. |
| FLAC | Lossless β an exact copy of the original. Roughly 4× the size of an MP3. |
| Ogg Vorbis | Slightly better quality than MP3 at the same size, and patent‑free. |
| AAC (.m4a) | Good quality per megabyte; choose MP3 instead if the file also needs to play on older devices. |
Advanced settings
The defaults are chosen to work. These are for when you have a reason.
Multi-pass encoding
Encodes the video twice: the first run measures the material, the second spends the bitrate where it is actually needed. It matters more here than in a general‑purpose converter, because these presets aim at a fixed bitrate and a single pass has to guess how to spend it while still reading the file β so it commonly overshoots. Measured on a test clip asking for 800 kbps, one pass produced 959 and two produced 838.
On a PS2 an overshoot is not merely a larger file: it is dropped frames over USB or a network share. The cost is roughly double the conversion time.
The pass count is fixed at 2. That is a limitation of FFmpeg, not of the format β MPEG‑4 Part 2 itself supports more, and the commercial DivX encoder implements them. FFmpeg's second pass never writes back to its statistics log, so a third pass has nothing new to work from; asking for one makes the encoder fall back to first‑pass behaviour and badly overshoot.
Keyframe interval
How often a complete, self‑contained frame is written; everything between keyframes is stored as differences. This is what decides how fast seeking feels: jumping to any point means decoding forward from the previous keyframe, so a long interval can mean many seconds of work on a 294 MHz CPU before playback resumes.
The default of 50 β about two seconds β sits at the knee of that curve. Raising it toward 300 saves only a few percent more file size but costs ten seconds or more on every jump.
Keyframe interval is not the same as B‑frames. The two are routinely confused. B‑frames is a small number (0–4) controlling how frames are predicted from their neighbours; the keyframe interval is in the tens or hundreds and controls how often the picture is refreshed from scratch. Leave B‑frames at 0 unless you have a reason β the PS2 decodes MPEG‑4 in software, and B‑frames are the first thing to cost it frames.
Windows 7
There is a separate SMS-Media-Converter-Win7.exe, because the standard build cannot start
on Windows 7 at all β Qt 6 and Python 3.9 both dropped support for it. The
Windows 7 build is the same application compiled against Qt 5 and Python 3.8. It is not a
reduced version; the presets and validation are identical.
Notes
- MP4 files are written front‑loaded. The index is placed at the start of the file, so SMS can begin playing immediately instead of reading through the whole file first.
- Real Xvid is used when available. If your FFmpeg includes
libxvid, the Xvid preset uses it rather than FFmpeg's built‑in encoder. - Output is checked after conversion against the limits SMS actually has β resolution, stream count, packet size, and the 32‑bit file‑size ceiling.