Skip to content

Releases: Santitub/rtv

Release list

1.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 15:15
32b35e9

rtv 1.0.0 — first stable release

rtv is a fast video player for your terminal — with an optional native GUI (--gui) when you want one. A ~1 MB Rust binary that starts in 20 ms, decodes with FFmpeg, and paints into your terminal using its native graphics protocol.

After months of iteration, the initial roadmap is complete: five rendering backends, ffplay-grade A/V sync, hardware decode, network playback, and a windowed GUI — all tested and validated on real hardware.

Highlights

🖥️ Five rendering backends, auto-detected

  • kitty graphics protocol — exact pixels, zlib-compressed over SSH, zero-copy shared memory locally (Linux & macOS)
  • iTerm2 inline images and sixel for compatible terminals
  • half-blocks and ASCII fallbacks that work anywhere, including plain TTYs

🎯 ffplay-grade A/V sync

Audio-master clock with the same drop/wait frame discipline as ffplay, mpv-style keyframe seeking, resilience to terminal resizes, suspend/resume and window storms. Median A/V offset ≈ 0 ms in steady state.

⚡ Hardware decoding

--hwdec with CUDA/VAAPI/VDPAU/VideoToolbox/D3D11VA, NVIDIA-aware driver ordering, native AV1 decoder probing, live HUD indicator and --verbose diagnostics for every fallback.

🌐 Internet playback

  • Direct http/https URLs (TLS in all shipped builds)
  • YouTube and other sites via yt-dlp (bundled in releases, self-updating), with separate DASH video+audio streams
  • Twitch: native resolver (no yt-dlp needed, ~1 s to first frame), local DVR with real seek on live streams, ad detection, stream prefetch during ads, and native VOD support
  • HLS (.m3u8) with master-playlist quality selection
  • Pure audio files (mp3/flac/…) with a procedural visualizer

🪟 Optional GUI (--gui)

A windowed player (egui + wgpu) sharing the exact same playback core — progress bar with hover tooltip, keyboard shortcuts, fullscreen. Shipped as a separate -gui package per OS.

📦 Platforms

Prebuilt, self-contained packages for Linux (x86_64/arm64), Windows, macOS (Intel/Apple Silicon) and Android/Termux — each with FFmpeg bundled and validated in CI, including automated GUI integration tests on all three desktop OSes.

Benchmarks

On an RTX 3060 with --hwdec auto: 0.77s CPU time vs 2.86s software and 10.77s for mpv --vo=tct on the same 8-second HEVC clip. A 14× reduction in CPU vs terminal mpv.

License

Dual-licensed under MIT OR Apache-2.0.


English

Self-contained binaries: FFmpeg 7.1 is bundled inside every
package
— nothing else needs to be installed. The
Linux/Windows/macOS packages also include yt-dlp (to play
YouTube URLs and the like: rtv <url>); rtv will use the one on
your PATH if you have a newer one, and the bundled copy updates
itself with yt-dlp -U. Termux has no yt-dlp build for Android:
pip install yt-dlp.

Each desktop platform ships two packages: the regular one
(terminal only) and the -gui one, which is the same rtv with
the extra window mode (rtv --gui video.mp4); everything else is
identical. Termux has no GUI variant (Android ships no X server;
it would need Termux:X11 separately).

Platform File Requirements
Linux x86_64 rtv-*-linux-x86_64.tar.gz glibc ≥ 2.35 (Ubuntu 22.04+), libasound2
Linux x86_64 (GUI) rtv-*-linux-x86_64-gui.tar.gz same + X11/Wayland
Linux arm64 rtv-*-linux-arm64.tar.gz glibc ≥ 2.35 (Ubuntu 22.04+), libasound2
Linux arm64 (GUI) rtv-*-linux-arm64-gui.tar.gz same + X11/Wayland
Windows x86_64 rtv-*-windows-x86_64.zip Windows 10+
Windows x86_64 (GUI) rtv-*-windows-x86_64-gui.zip Windows 10+
macOS Intel rtv-*-macos-x86_64.tar.gz macOS 13+
macOS Intel (GUI) rtv-*-macos-x86_64-gui.tar.gz macOS 13+
macOS Apple Silicon rtv-*-macos-arm64.tar.gz macOS 14+
macOS Apple Silicon (GUI) rtv-*-macos-arm64-gui.tar.gz macOS 14+
Termux/Android aarch64 rtv-*-termux-aarch64.tar.gz Termux from F-Droid; audio: pkg install pulseaudio
Termux/Android x86_64 rtv-*-termux-x86_64.tar.gz (emulators/Android-x86)

Usage: extract and run ./rtv video.mp4 (Windows: rtv.exe video.mp4).
The binary must stay next to its lib//libs/ folder (Linux/macOS/Termux)
or next to the DLLs (Windows).

Español

Binarios autocontenidos: FFmpeg 7.1 va incluido dentro de cada
paquete
— no hay que instalar nada más. Los paquetes de
Linux/Windows/macOS incluyen además yt-dlp (para reproducir
URLs de YouTube y demás: rtv <url>); rtv usará el del PATH si
tienes uno más nuevo, y el incluido se actualiza con yt-dlp -U.
En Termux no hay build de yt-dlp para Android: pip install yt-dlp.

Cada plataforma de escritorio tiene dos paquetes: el normal
(solo terminal) y el -gui, que es el mismo rtv con el modo
ventana adicional (rtv --gui vídeo.mp4); todo lo demás es
idéntico. Termux no tiene variante GUI (Android no trae servidor
X; haría falta Termux:X11 aparte).

Plataforma Fichero Requisitos
Linux x86_64 rtv-*-linux-x86_64.tar.gz glibc ≥ 2.35 (Ubuntu 22.04+), libasound2
Linux x86_64 (GUI) rtv-*-linux-x86_64-gui.tar.gz ídem + X11/Wayland
Linux arm64 rtv-*-linux-arm64.tar.gz glibc ≥ 2.35 (Ubuntu 22.04+), libasound2
Linux arm64 (GUI) rtv-*-linux-arm64-gui.tar.gz ídem + X11/Wayland
Windows x86_64 rtv-*-windows-x86_64.zip Windows 10+
Windows x86_64 (GUI) rtv-*-windows-x86_64-gui.zip Windows 10+
macOS Intel rtv-*-macos-x86_64.tar.gz macOS 13+
macOS Intel (GUI) rtv-*-macos-x86_64-gui.tar.gz macOS 13+
macOS Apple Silicon rtv-*-macos-arm64.tar.gz macOS 14+
macOS Apple Silicon (GUI) rtv-*-macos-arm64-gui.tar.gz macOS 14+
Termux/Android aarch64 rtv-*-termux-aarch64.tar.gz Termux de F-Droid; audio: pkg install pulseaudio
Termux/Android x86_64 rtv-*-termux-x86_64.tar.gz (emuladores/Android-x86)

Uso: descomprimir y ejecutar ./rtv vídeo.mp4 (Windows: rtv.exe vídeo.mp4).
El binario debe permanecer junto a su carpeta lib//libs/ (Linux/macOS/Termux)
o junto a las DLLs (Windows).