ascii-video

Convert video, audio, and generative input into colored ASCII character video rendered to MP4 or GIF.

Updated Sep 10, 2026
One-click install
npx skills add https://github.com/loteiron/ZeusAgent --skill ascii-video-loteiron
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ascii-video
Source: https://github.com/loteiron/ZeusAgent/tree/main/skills/creative/ascii-video
Command: npx skills add https://github.com/loteiron/ZeusAgent --skill ascii-video-loteiron

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires numpy, pillow, scipy, ffmpeg, opencv, and includes references (resource) components.

What problem does it solve? Creating animated ASCII art video from scratch requires solving font rasterization, grid composition, color mapping, audio analysis, and video encoding all at once. This Skill gives an agent the complete pipeline and effect vocabulary to build single-file Python renderers that turn video, audio, images, text, or pure math into colored ASCII character video. ## Core Features & Use Cases - Six Input Modes: Video-to-ASCII conversion, audio-reactive visualizers with FFT band analysis and beat detection, generative procedural animation, hybrid video+audio, timed lyrics/text overlays, and TTS-narrated quote videos via ElevenLabs. - Full Effect Vocabulary: 24 character palettes, 21 value field generators (fBM noise, voronoi, reaction-diffusion, strange attractors), 9 particle systems, 38 composable shaders, 20 blend modes, feedback buffers, and masking. - Production Pipeline: Multi-density grid rendering, adaptive percentile-based tonemapping, parallel ffmpeg encoding with hardware-adaptive quality profiles from 540p draft to 4K. - Use Case: Ask for an audio-reactive music visualizer and the agent writes a Python script that analyzes the track's frequency bands and beats, renders layered ASCII scenes with beat-triggered particles and glitch shaders, and encodes a 1080p MP4 with the audio muxed in. ## Quick Start Use the ascii-video skill to create an audio-reactive ASCII visualizer from my song.mp3 file.

Frequently Asked Questions about ascii-video

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I convert a video to ASCII art in Python?▼

Decode the video with ffmpeg, sample per-frame luminance and edges, map brightness values to characters from a density-sorted palette, and composite pre-rasterized font bitmaps onto a pixel canvas. Pipe the raw RGB frames back to ffmpeg for H.264 encoding.

How to make an audio-reactive ASCII visualizer?▼

Analyze the audio with SciPy FFT to extract 6 frequency bands, RMS energy, spectral centroid, and beat detection per frame. Drive value field generators, particle systems, and shader intensity from those features, then encode frames to MP4 with the audio muxed.

Does ASCII video rendering require a GPU?▼

No GPU is required. Rendering runs on CPU with vectorized NumPy operations and concurrent.futures parallel workers, at roughly 100-200ms per frame at 1080p. Hardware detection adapts resolution and worker count automatically.

Why is my ASCII video output too dark?▼

ASCII characters are small bright dots on black backgrounds, so linear brightness multipliers clip highlights while leaving frames dark. Use percentile-based adaptive tonemapping with gamma correction (default 0.75) instead of multiplying the canvas.

Why does ffmpeg hang when encoding long videos from Python?▼

Setting stderr=subprocess.PIPE on a long-running ffmpeg process deadlocks once the buffer fills at about 64KB. Redirect stderr to a log file instead and write raw RGB frames to stdin.

What are the limitations of ASCII video rendering?▼

The per-cell Python compositing loop is the bottleneck at 80-150ms per frame, so a 5-minute 1080p video takes roughly 17-33 minutes on 8 workers. Unicode palette characters also depend on font support, so palettes must be validated at initialization.