Phosphor is a retro video player for macOS and Windows that emulates the look and feel of CRT TVs, old VHS tapes, and classic scanlines. Designed for enthusiasts and developers who love vintage video effects.
Prerequisites: Phosphor requires MPV to be installed on your system.
- macOS: Install MPV via Homebrew (
brew install mpv). The necessary libraries are automatically found by Phosphor.- Windows: You need
libmpv-2.dll(MPV executable is not required). A reliable source is SourceForge MPV Windows builds. Ensure the folder containinglibmpv-2.dllis in your systemPATH.
You can get Phosphor running in two ways:
-
Use a pre-built binary (recommended)
Download the binary for your system from the Releases page and run it directly – no Python setup needed. This is the easiest way to start. -
Run with Python (for development or advanced users)
If you want to develop Phosphor or run it from source, follow these steps:macOS / Linux:
./bin/setup.sh ./bin/phosphor.sh
Windows:
bin\setup.bat bin\phosphor.bat
This will create a virtual environment, install the required packages (PySide6, PyInstaller, python-mpv), and run the app.
- Play video files (
.mp4,.mkv,.avi,.mov) with a retro look. - Adjustable shader effects:
- CRT Frame – simulates old cathode-ray displays.
- Scanlines – classic horizontal lines for retro visuals.
- VHS Noise – adds VHS-style distortion and flicker.
- Single slider per shader to control effect strength (-5 to +5).
- Built-in presets:
Clean,80s TV,VHS (later). - Custom preset support based on your slider settings.
- Optional Retro Audio filter for an authentic audio experience.
- Integrated On-Screen Controller (OSC) for mouse-based playback control.
- Mouse interactions (scroll, click, right-click) are fully supported.
- Cross-architecture macOS support (Intel & Apple Silicon).
- Persisted settings for last used directory, effect toggles, and slider values.
- CRT Shader –
shaders/crt_base_[−5..5].glsl - Scanline Shader –
shaders/scanlines_[−5..5].glsl - VHS Shader –
shaders/vhs_noise_[−5..5].glsl - Shaders are applied based on slider values. Negative and positive values select different pre-defined stages.
- Left-click – Play / Pause (via OSC)
- Scroll wheel – Seek or volume control depending on OSC mode
- Right-click – Open OSC context menu
- Sliders & checkboxes – Adjust shader strength and enable/disable effects
- Preset dropdown – Quickly switch between predefined visual effects
-
Clone the repository:
git clone https://github.com/mikegasche/phosphor.git cd phosphor -
Set up Python environment:
./bin/setup.sh
or
bin\setup.bat -
Run the app:
./bin/phosphor.sh
or
bin\phosphor.bat
./bin/make.shor
bin\make.batThis project is licensed under the MIT License. See the LICENSE file for details.
