ascii-video

Generates colored ASCII character videos from video, audio, or generative inputs using Python and ffmpeg.

Updated May 13, 2026
One-click install
npx skills add https://github.com/superfhp/lumi-agent-body --skill ascii-video-superfhp
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ascii-video
Source: https://github.com/superfhp/lumi-agent-body/tree/main/skills/creative/ascii-video
Command: npx skills add https://github.com/superfhp/lumi-agent-body --skill ascii-video-superfhp

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Creating animated ASCII art video requires solving many hard problems at once: font rasterization, character grid composition, audio analysis, color mapping, post-processing, and video encoding. This Skill gives an agent the complete production pipeline to build single-file Python renderers that turn video, audio, images, text, or pure math into colored ASCII MP4/GIF output. ## Core Features & Use Cases - Six input modes: video-to-ASCII conversion, audio-reactive visualizers with FFT beat detection, generative procedural animation, hybrid video+audio, timed lyrics/text overlays, and TTS-narrated quote videos via ElevenLabs. - Full effect vocabulary: 21 value field generators (fBM noise, voronoi, reaction-diffusion, strange attractors), 24 character palettes, 38 composable shaders, 20 blend modes, particle systems, feedback buffers, and masking. - Production pipeline: multi-density grid composition, adaptive percentile-based tonemapping, OKLAB/OKLCH color system, hardware-adaptive quality profiles, and parallel ffmpeg encoding. - Use Case: Ask for a 3-minute audio-reactive music visualizer and the agent writes a renderer with 8 beat-synced sections, each with distinct effects, palettes, and shader moods, then encodes it to 1080p MP4. ## Quick Start Ask the agent to create an ASCII art video from your audio or video file, describing the mood, colors, and style you want.

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 animation in Python?▼

Sample frames from the source video, map per-cell luminance to characters from a density-sorted palette, and color cells from the original pixel values. Frames are composited with pre-rasterized font bitmaps and piped to ffmpeg for H.264 encoding.

How do I make an audio-reactive ASCII music visualizer?▼

Analyze the audio with 6-band FFT, RMS energy, spectral centroid, and beat detection with exponential decay. Drive value field generators, particle systems, and beat-reactive shaders like glitch bands and chromatic aberration from those per-frame features.

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 around 0.75 instead, lowering to 0.50-0.60 for solarize or posterize scenes.

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 keep stdin as the raw RGB frame pipe.

Can ASCII video render without a GPU?▼

Yes, the entire pipeline runs on CPU using NumPy-vectorized effect math and Pillow font rasterization. Rendering runs about 100-200ms per frame at 1080p, parallelized across worker processes, with quality profiles that adapt to detected hardware.

What fonts and characters work for ASCII art rendering?▼

Any monospace font works, with auto-detection for Menlo, Consolas, DejaVu Sans Mono, and others. Unicode palettes like braille, katakana, and runes must be validated at init since unsupported glyphs render blank and are silently dropped.