Skip to main content

video2psp

video2psp is a Python CLI tool that converts videos to a PSP-compatible MP4 format, allowing you to select which audio and subtitle track to include (burned in) or optionally use an external subtitle file.

Installation

  1. Make sure you have FFmpeg (including ffprobe) installed and accessible in your system’s PATH.
  2. Clone or download this repository and run:
    pip install .
    
    This will install video2psp as a console command.

Or install using PyPI

pip install video2psp

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, choose tracks, and tweak volume/preset/CRF/frame rate without touching the terminal.

CLI

With the tool installed, simply run:

video2psp <input_video> [output_video] [options]
  • If output_video is omitted, the output is saved next to the input with an .mp4 extension.
  • If you do not specify --video-track, --audio-track or --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 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/-bufsize still 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.mp4 so 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!

Metadata

Release files for video2psp 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for video2psp 0.6.0
File Size Uploaded Provenance Actions
video2psp-0.6.0.tar.gz 21.1 kB With provenance Details for video2psp-0.6.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for video2psp 0.6.0
File Interpreter ABI Platform Actions
video2psp-0.6.0-py3-none-any.whl Python 3 none any Details for video2psp-0.6.0-py3-none-any.whl

Total release size: 38.9 kB

Release files / video2psp-0.6.0.tar.gz

Download URL video2psp-0.6.0.tar.gz
Size 21.1 kB
Tags Source
SHA-256 checksum
How to use checksums
68247206779b51d83cef376253a8fa92de4e351ebf60c291e29c390b77fcbd2a
BLAKE2b-256 checksum
How to use checksums
d7d033e494d8fb3a5b37e6a72f32ac4b7c4a6350a864e52fc90b7a0890f26bad
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 log

Release files / video2psp-0.6.0-py3-none-any.whl

Download URL video2psp-0.6.0-py3-none-any.whl
Size 17.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e168af781ec07bbec43d07d5a33a5e280e98659f4334019e09b10dfa9cd86467
BLAKE2b-256 checksum
How to use checksums
76dedee072cbc5879610daf3db0eca693567b112b94220ad4fc900403dae0b80
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 log

Security for video2psp 0.6.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.

Select from 2 files

Attestation for video2psp-0.6.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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page