basics / 02 of 15
Installing
phonto is one binary on Linux and macOS. On Linux, GStreamer does the decoding, and its plugins matter as much as phonto does.
Requirements
- On Linux, a Wayland compositor with wlr-layer-shell. Hyprland, Sway, niri, river and KDE Plasma have it. GNOME doesn’t.
- On Linux, GStreamer and its plugins. The base, good and bad sets and libav cover the containers and codecs most videos use, and the VA-API plugin decodes on the GPU. Without it, GStreamer decodes on the CPU instead. That works, but costs far more CPU.
- On macOS, nothing. phonto uses the system’s frameworks, and VideoToolbox decodes H.264, HEVC and ProRes on the GPU.
- For YouTube links, yt-dlp on your
PATH.
GStreamer plugins on Linux
shell
# Arch Linux
sudo pacman -S gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav gst-plugin-va
# Debian and Ubuntu
sudo apt install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl gstreamer1.0-vaapi
# Fedora
sudo dnf install gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-libav gstreamer1-vaapiWith Nix you can skip this. The package brings its own GStreamer.
Installing phonto
Homebrew
On macOS, and on Linux on x86_64.
shell
brew tap museslabs/phonto
brew install phontoNix
shell
nix profile install github:museslabs/phontoArch Linux
From the AUR:
shell
yay -S phontoCargo
shell
cargo install phontoCargo builds phonto from source. That takes Rust 1.88 or newer, and on Linux the development headers for GStreamer, Wayland and EGL:
shell
# Debian and Ubuntu
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libglib2.0-dev libwayland-dev libegl1-mesa-devChecking it works
shell
phonto displaysThis lists the displays phonto can see, with their IDs and resolutions. If they’re there, phonto can reach your compositor. Then play something:
shell
phonto ~/Videos/harbour.mp4If phonto exits with a GStreamer error on Linux instead, a plugin is usually missing. Check the list above.