Convert Slippi replay files (.slp) to video files (.mp4) with ease.
- Multiple conversion modes:
- Single file(s)
- Directory (recursive)
- Replay Manager zip(s)
- Parallel processing for faster conversions
- GUI for easy configuration and operation
- Customizable output resolution and bitrate
- Cross-platform support for Windows, Linux
- Dolphin on Mac does not support framedumping
- Python 3.11 or higher
- FFmpeg installed and accessible
- Slippi Dolphin installed
- Super Smash Bros. Melee ISO file
Select the latest release from the releases page.
pip install "slp2mp4[gui] @ git+https://github.com/davisdude/slp2mp4.git"or
git clone https://github.com/davisdude/slp2mp4.git
pip install .[gui]Both methods require having git and pip installed
usage: slp2mp4 [-h] [-o OUTPUT_DIRECTORY] [-n] [-v] {single,directory,replay_manager} ...
options:
-h, --help show this help message and exit
-o, --output-directory OUTPUT_DIRECTORY
set path to output videos
-n, --dry-run show inputs and outputs and exit
-v, --version show program's version number and exit
mode:
{single,directory,replay_manager}
single convert single replay files to videos
directory recursively convert all replay files in a directory to videos
replay_manager recursively convert all replay files in a zip to videos
Each mode can accept several inputs simultaneously:
usage: slp2mp4 single [-h] paths [paths ...]
positional arguments:
paths input file(s)
options:
-h, --help show this help message and exit
usage: slp2mp4 directory [-h] paths [paths ...]
positional arguments:
paths input directory/directories
options:
-h, --help show this help message and exit
usage: slp2mp4 zip [-h] paths [paths ...]
positional arguments:
paths replay manager zip/directory
options:
-h, --help show this help message and exit
The GUI has all the features that the CLI has. Change your settings in the menu, select your conversion type, set your directories, then click start.
To launch the GUI, run slp2mp4_gui.
slp2mp4 uses hierarchical settings that come from TOML files.
Settings not found in the user configuration (~/.slp2mp4.toml) fall back to
the default settings.
The default settings can be found here.
ffmpeg: Path to FFmpeg executableslippi_playback: Path to playback Slippi Dolphin executablessbm_iso: Path to your Melee ISO file
backend: Video backend (D3D12,DX11,DX9,OGL,Software Renderer,Vulkan)resolution: Output resolution (480p,720p,1080p,1440p,2160p)bitrate: Video bitrate in kbps
"$Optional: Show Player Names""$Optional: Game Music OFF""$Optional: Widescreen 16:9""$Optional: Disable Screen Shake""$Optional: Hide HUD""$Optional: Hide Waiting For Game""$Optional: Enable Develop Mode""$Optional: Lagless FoD"
audio_args: FFmpeg audio processing settingsvolume: Volume of dolphin (0-100)
-
parallel: Number of parallel processes (0 = auto-detect CPU cores) -
prepend_directory: Prepend the parent directory info -
preserve_directory_structure: Make video outputs match the input structure instead of being "flat" -
youtubify_names: Enablename_replacements(below) -
name_replacements: A mapping of characters to replace in titles; intended for uploads to websites (e.g. YouTube) that remove or prohibit certain characters in titles-
To disable entirely, set
youtubify_namestofalse -
To disable for specific characters, have its assignment be to itself, e.g.
[runtime.name_replacements] "-" = "-"
-
Replacements are only per-character. Replacing a single character with multiple characters or vice-versa may result in unexpected behavior.
-
Windows:
[paths]
ffmpeg = "~/Downloads/ffmpeg-2025-01-27-git-959b799c8d-essentials_build/bin/ffmpeg.exe"
slippi_playback = "~/AppData/Roaming/Slippi Launcher/playback/Slippi Dolphin.exe"
ssbm_iso = "~/Documents/iso/ssbm.iso"
[dolphin]
backend = "D3D12"
resolution = "1080p"
bitrate = 16000
[ffmpeg]
volume = 25
[runtime]
parallel = 0Linux:
[paths]
ffmpeg = "ffmpeg"
slippi_playback = "~/.config/Slippi Launcher/playback/Slippi_Playback-x86_64.AppImage"
ssbm_iso = "~/Games/Melee.iso"
[dolphin]
backend = "OGL"
resolution = "1080p"
bitrate = 16000
[ffmpeg]
volume = 25
[runtime]
parallel = 0-
If you get weird looking video (where half the width is cropped), try changing the video backend (see
backendin dolphin settings for possible options). -
Does not play nicely with WSL, since dolphin expects all paths to be relative to Windows.
This project is licensed under the MIT License - see the license file for details.