ascii-video

Converts video, audio, images, or generative input into colored ASCII character video output.

1|Updated Mar 12, 2026
One-click install
npx skills add https://github.com/kaminocorp/hermes-alpha-hunter --skill ascii-video-kaminocorp
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ascii-video
Source: https://github.com/kaminocorp/hermes-alpha-hunter/tree/main/skills/creative/ascii-video
Command: npx skills add https://github.com/kaminocorp/hermes-alpha-hunter --skill ascii-video-kaminocorp

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Creating ASCII art video from scratch requires solving font rasterization, grid layout, color mapping, audio analysis, shader post-processing, and ffmpeg encoding — a pipeline most developers would have to invent and debug themselves. This Skill gives an agent the complete production pipeline so it can write a working single-file Python renderer and produce actual MP4/GIF output. ## Core Features & Use Cases - Six input modes: video-to-ASCII conversion, audio-reactive visualizers (FFT bands, beat detection), generative procedural animation, hybrid video+audio, timed lyrics/text overlays, and TTS-narrated quote videos. - Full effect vocabulary: 21 value field generators (fBM noise, voronoi, reaction-diffusion, strange attractors, SDFs), 24 character palettes, 38 composable shaders, 20 pixel blend modes, particle systems, and a feedback buffer for temporal trails. - Production engineering: adaptive percentile-based tonemapping, hardware detection with quality profiles (draft to 4K), parallel multi-worker ffmpeg encoding, and per-clip segmented rendering for fast iteration. - Use Case: Ask the agent to turn a 3-minute song into an audio-reactive ASCII music visualizer — it analyzes the audio, builds scenes with beat-triggered particles and glitch effects, and renders a 1080p MP4. ## Quick Start Ask the agent to convert your video or audio file into a colored ASCII art video, specifying the mode, resolution, and style direction 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 video in Python?▼

Load the source video frames with ffmpeg or OpenCV, sample per-cell luminance and color, map values to a character palette on a fixed grid, composite pre-rasterized font bitmaps onto a pixel canvas with NumPy, then pipe raw RGB frames to ffmpeg for H.264 encoding.

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

Analyze the audio with SciPy FFT to extract 6 frequency bands, RMS energy, spectral centroid, and beat detection with exponential decay. Drive value field generators, particle systems, and beat-reactive shaders from those per-frame features, then encode with the audio muxed back in.

Why is my ASCII video output too dark?▼

ASCII characters are small bright dots on black, so most frame pixels are background and linear brightness multipliers clip highlights. Use percentile-based adaptive tonemapping with gamma around 0.75 instead, and prefer screen blend mode over overlay when compositing dark layers.

Does ASCII video rendering require a GPU?▼

No GPU is required. Rendering runs on CPU with NumPy-vectorized effects and a per-cell font compositing loop at roughly 100-200ms per frame, parallelized across worker processes that each pipe frames to their own ffmpeg encoder.

Why does ffmpeg hang when encoding long ASCII videos?▼

Using stderr=subprocess.PIPE on a long-running ffmpeg process deadlocks once the stderr buffer fills at about 64KB. Redirect stderr to a log file instead and keep stdin as the raw video pipe.

What are the limitations of Unicode character palettes in ASCII video?▼

Not all Unicode glyphs render in every monospace font, and some characters collapse to blobs at small font sizes. Validate palettes at initialization by test-rendering each glyph and silently dropping characters that produce blank bitmaps.