ascii-video

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

14|5|Updated Apr 9, 2026
One-click install
npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill ascii-video-mlt-oss
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ascii-video
Source: https://github.com/MLT-OSS/hermes-agent-go/tree/main/skills/creative/ascii-video
Command: npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill ascii-video-mlt-oss

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires numpy, pillow, scipy, ffmpeg, opencv, elevenlabs, 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, brightness normalization, 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 character video (MP4, GIF, or image sequences) without a GPU. ## Core Features & Use Cases - Six production modes: video-to-ASCII conversion, audio-reactive music visualizers, generative procedural animation, hybrid video+audio, timed lyrics/text overlays, and TTS-narrated quote videos. - Deep effect vocabulary: 21 value field generators (fBM noise, voronoi, reaction-diffusion, strange attractors, SDFs), 9 particle systems, 38 composable shaders, 20 blend modes, 24 character palettes, and an OKLAB/OKLCH perceptual color system. - Production engineering: adaptive percentile-based tonemapping, feedback buffers for temporal trails, multi-density grid composition, hardware-adaptive quality profiles, and parallel ffmpeg encoding with per-clip rendering. - Use Case: Ask for a 3-minute audio-reactive ASCII music visualizer and the agent writes a single Python script that analyzes the audio's frequency bands and beats, renders multi-grid scenes with beat-triggered particles and glitch shaders, and encodes a 1080p MP4 with muxed audio. ## Quick Start Create an audio-reactive ASCII music visualizer video from my song.mp3 file at 1080p.

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?

Decode the source video with ffmpeg, sample per-frame luminance and edges, map brightness values to characters from a density-sorted palette, and render them onto a pixel canvas with pre-rasterized font bitmaps. Pipe the raw RGB frames back 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 per frame. Drive value field effects, particle triggers, and shader intensity from those features, then encode frames to MP4 and mux the original audio.

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 gamma 0.75) to lift shadows without blowing out bright regions.

Does ASCII video rendering require a GPU?

No GPU is required. Rendering runs on CPU with NumPy-vectorized effect math and parallel ffmpeg encoding across worker processes, typically achieving 100-200ms per frame at 1080p depending on scene complexity.

Why does my ffmpeg encoding hang during long renders?

Setting stderr=subprocess.PIPE on long-running ffmpeg processes deadlocks once the buffer fills at about 64KB. Redirect stderr to a log file instead and keep only stdin open for piping raw RGB frames.

Can ASCII video render Unicode characters like braille or katakana?

Yes, but not all fonts render all Unicode glyphs. Validate palettes at initialization by rendering each character and checking for blank output, silently dropping unsupported glyphs so the palette stays clean.