movycat plays videos directly in your terminal — in full RGB color. It renders frames as ANSI half block characters, using the movy rendering engine, with synced audio playback powered by SDL2.
It supports all formats that FFmpeg can decode — including .mp4, .h264, .avi, .mkv, .webm, and more.
-
Press ESC to quit.
-
Press SPACE to pause.
-
Press CURSOR RIGHT to skip forward 5 seconds.
-
Press CURSOR LEFT to skip backwards 5 seconds.
-
Of course you can use vim keys instead of the cursor keys!
l to skip forwards, and h to skip backwards 5 seconds. -
Press i to toggle the info overlay.
(Excerpt from the 64k Demo "Universal Sequence" from the amazing demo group "Conspiracy")
movycat is both a demo and a showcase of what movy can do: an RGBA-based rendering engine for composing, transforming, and displaying visuals with real-time effects. If movy can render anything to a surface, why not video frames?
movycat is entirely written in Zig. This offers us to seamlessly import libffmpeg. And libsdl2. And call it directly from the code.
- FFmpeg (shared libraries)
- SDL2
- Zig 0.14.0 or newer
movycat has been tested and confirmed working on:
- macOS 15.5 with FFmpeg 8.0 (via Homebrew)
- Ubuntu 25.10 with FFmpeg 7.1.1 (via apt)
On macOS:
On Ubuntu:
.png)




