video2psp
video2psp converts videos to a PSP-compatible MP4 format, with a graphical interface and a command-line tool. You choose which audio and subtitle track to include (subtitles are burned in), or use an external subtitle file, and can trim the video to just the part you want.
Installation
Windows (no install needed)
Download video2psp-gui-<version>-windows.zip from the latest release, extract it and run video2psp-gui.exe. FFmpeg is already included.
Windows SmartScreen may warn about an unrecognized app the first time; click More info → Run anyway.
Linux and macOS
video2psp needs Python 3.11+, FFmpeg (with ffprobe and the libx264 encoder) and Tkinter for the GUI. Install them with your package manager, then install video2psp with pipx, which keeps it in its own environment (plain pip install is blocked on many recent distros):
| System | Dependencies |
|---|---|
| Debian / Ubuntu / Mint | sudo apt install ffmpeg python3-tk pipx |
| Fedora | Enable RPM Fusion, then sudo dnf install ffmpeg python3-tkinter pipx (Fedora's own ffmpeg-free has no libx264) |
| Arch / Manjaro | sudo pacman -S ffmpeg tk python-pipx |
| macOS (Homebrew) | brew install ffmpeg python-tk pipx |
pipx ensurepath # once, so the commands are found (then reopen the terminal)
pipx install video2psp
video2psp-gui # or: video2psp <input_video> for the CLI
To update later: pipx upgrade video2psp.
To check that your FFmpeg can encode for the PSP, ffmpeg -hide_banner -encoders | grep libx264 should print a line.
Windows with Python
If you prefer the Python package over the standalone release, install FFmpeg (e.g. winget install Gyan.FFmpeg) and run:
pip install video2psp
From source
Clone this repository and run pip install . in it.
Usage
GUI
Prefer a graphical interface? Run:
video2psp --gui
(-g also works), or launch video2psp-gui to open it without a terminal window. The GUI lets you pick the input/output files, trim the video, choose tracks, and tweak quality/speed/frame rate/volume without touching the terminal. It follows the Windows light/dark setting, and the button in the top-right corner switches between them.
CLI
With the tool installed, simply run:
video2psp <input_video> [output_video] [options]
- If
output_videois omitted, the output is saved next to the input with an.mp4extension. - If you do not specify
--video-track,--audio-trackor--subtitle-track, the script will prompt you to pick which tracks to use. - To skip prompts, you can set them explicitly, for example:
video2psp movie.mkv out.mp4 --video-track 0 --audio-track 0 --subtitle-track 1
- To burn an external subtitle file instead of an embedded track:
video2psp movie.mkv out.mp4 --external-subs subs.srt
- To convert only part of the video, give a start and/or end time (seconds,
MM:SSorHH:MM:SS). Burned-in subtitles stay in sync:video2psp movie.mkv out.mp4 --start 1:30 --end 22:10
- To adjust audio volume (e.g. 150%):
video2psp movie.mkv out.mp4 --volume 1.5
- To trade encoding speed for compression efficiency (default:
medium):video2psp movie.mkv out.mp4 --preset veryfast
Available presets (slowest/best compression to fastest):veryslow,slower,slow,medium,fast,faster,veryfast,superfast,ultrafast. - To control video quality/file size via CRF (0-51, lower = higher quality and larger file, default:
23):video2psp movie.mkv out.mp4 --crf 26
Video is encoded at a constant quality target rather than a fixed bitrate, so simple scenes take up less space;-maxrate/-bufsizestill cap the peak bitrate to respect the PSP's decoder buffer limits. - The output keeps the source frame rate by default (max 29.97 fps, the PSP limit; higher rates are divided evenly, e.g. 59.94 → 29.97, 50 → 25). To pick one yourself:
video2psp movie.mkv out.mp4 --fps 23.976
- Hardware (GPU) decoding is on by default and falls back to the CPU automatically when unavailable. If it causes problems on your machine, turn it off:
video2psp movie.mkv out.mp4 --no-hwaccel
Notes & Limitations
- The PSP typically supports H.264 Baseline Level 3.0 with AAC audio.
- Resolution is scaled to fit within 480x272 (PSP screen size), preserving aspect ratio and padding with black bars as needed.
- Only one video and audio track is included, and one subtitle track can be burned.
- For image-based subtitles (like PGS or VobSub), you need to convert them to a text format (e.g., SRT) before burning.
- If no output file is given and the input is already an
.mp4, the output is saved as<name>_psp.mp4so the original is never overwritten. - 10-bit sources and anamorphic videos (e.g. DVDs) are converted to 8-bit and square pixels automatically.
Feel free to contribute or customize further. Enjoy converting videos for your PSP!
License
video2psp is licensed under the GNU General Public License v3.0 or later. The Windows release bundles FFmpeg builds from gyan.dev, which are also distributed under the GPL.
Metadata
Release files for video2psp 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| video2psp-0.7.0.tar.gz | 114.8 kB | With provenance | Details for video2psp-0.7.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| video2psp-0.7.0-py3-none-any.whl | Python 3 | none | any | Details for video2psp-0.7.0-py3-none-any.whl |
Total release size: 175.1 kB
Release files / video2psp-0.7.0.tar.gz
| Download URL | video2psp-0.7.0.tar.gz |
|---|---|
| Size | 114.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cc49d7760bdf88e9b52b0ec12c204483614fb17366d222f86188a9e72ddd8961
|
|
BLAKE2b-256 checksum How to use checksums |
e25ee5b8aaf7141052fe0a2264883a03497726b8f60c0781d48fb2915ca4b9d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logRelease files / video2psp-0.7.0-py3-none-any.whl
| Download URL | video2psp-0.7.0-py3-none-any.whl |
|---|---|
| Size | 60.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7cb6fc76fc2dd5f5fe8c7a5078b3f49db3266daf83648c74ada0a59837d9912a
|
|
BLAKE2b-256 checksum How to use checksums |
3d27d387e8a47711e34c7ad853b9e1e5159f9974c36af36669b8377d586902f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logSecurity for video2psp 0.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for video2psp-0.7.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.