Pixelate renders images and videos as ASCII or colored blocks directly in a terminal. It supports Linux, macOS, and Windows terminals with 24-bit ANSI color.
- Render common image formats as plain ASCII, true-color ASCII, or color blocks.
- Encode videos and optional audio to Pixelate's compact
.asvformat with FFmpeg. - Play
.asvfiles with pause, seek, live terminal resizing, and graceful Escape or Ctrl+C handling. - Preserve aspect ratio automatically or fill the available terminal area.
- Run on Linux, macOS, and Windows from one C99 codebase.
Download the latest prebuilt binary for your system:
| System | Architecture | Download |
|---|---|---|
| Linux | x86-64 | pixelate-linux-amd64.zip |
| Linux | ARM64 | pixelate-linux-arm64.zip |
| Windows | x86-64 | pixelate-windows-amd64.zip |
| macOS | Apple silicon | pixelate-macos-silicon.zip |
For other systems and architectures, follow the build instructions below.
You need a C99 compiler and CMake 3.16 or newer. FFmpeg is also required when encoding videos.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config ReleaseThe executable is build/pixelate on Linux and macOS. With a multi-config
Windows generator, it is normally build/Release/pixelate.exe.
# Render an image using the largest aspect-preserving size
./build/pixelate image photo.png --size auto
# Render with source colors or solid color blocks
./build/pixelate image photo.png --size auto --color
./build/pixelate image photo.png --size fit --block
# Encode and play a video
./build/pixelate video encode input.mp4 output.asv --size auto --fps 24 --audio
./build/pixelate video play output.asv --color --size auto
./build/pixelate video play output.asv --block --size fitRun pixelate --help for the complete command reference. Run
pixelate --version to see the version, developer, and project address.
-c,--color: use each source pixel's color on its ASCII character.-b,--block: draw solid, source-colored background blocks.-i,--invert: reverse the ASCII brightness ramp, or invert RGB colors in block mode.--remove <chars>: replace the listed ASCII characters with spaces.
-a,--audio: include the source audio when encoding an ASV file.--fps <12-30>: set the encoded video frame rate.
--size auto: use the largest size that preserves the source aspect ratio.--size fit: fill the terminal; video playback follows terminal resizing.--size WxH: set the output image or encoded ASV frame dimensions.--size native: play an ASV file at its stored dimensions.
Audio-enabled ASV3 files play their embedded audio automatically and require
ffplay at playback time. Press Space to pause or resume, and use Left or Right
to seek five seconds; audio follows all playback controls. Use Up and Down to
adjust audio through 10 volume levels. Press Escape or Ctrl+C to exit
gracefully. ASV1 and ASV2 files remain fully supported.
Pixelate uses stb_image by Sean Barrett and contributors.
Copyright (c) 2026 s3p. All rights reserved. This is proprietary software; see LICENSE for the restrictions that apply.