Real-time video rendering in the terminal using ANSI truecolor, perceptual dithering and synchronized audio.
- Download from GitHub Releases
- Or build from source:
# Windows
.\scripts\build.ps1# macOS / Linux
chmod +x ./scripts/build.sh && ./scripts/build.shAfter install, run the CLI as vterminal.
Play a local file:
vterminal --input ./test.mp4Play a YouTube video (requires yt-dlp installed):
vterminal --input https://youtube.com/...If you prefer to run from source:
go run ./cmd/vterminal --input ./test.mp4- Audio + video synchronization (primary differentiator)
- Real-time rendering performance
- Diff-based incremental rendering (minimal stdout)
- Perceptual optimizations: channel dithering, subpixel simulation
- Truecolor (24-bit) when available
Video input (FFmpeg) → Frame buffer → RGB channel split → Adaptive quantization & dithering → Char mapping + ANSI → Diff engine → Terminal output
For design decisions and architecture details see readme/ARCHITECTURE.md.
See readme/Configuration.md for full configuration options and examples. Short example is available in config.example.json.
Benchmarks and performance numbers are in progress. See readme/Todo.md for planned benchmark tasks.
- Pipe from yt-dlp, use presets, or tune
--fps/--preset - See readme/MOCK_FLOW.md for common pipelines
Bug reports and PRs welcome. See CONTRIBUTING.md.
MIT
