ascii-video

Generate colored ASCII character videos from video, audio, images, or generative input.

6|1|Updated May 11, 2026
One-click install
npx skills add https://github.com/yakeworld/Synthos --skill ascii-video-yakeworld
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ascii-video
Source: https://github.com/yakeworld/Synthos/tree/main/skills/extended/external-automation/creative/video-audio/ascii-video
Command: npx skills add https://github.com/yakeworld/Synthos --skill ascii-video-yakeworld

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 videos normally requires building a full rendering pipeline from scratch — font rasterization, character grids, audio analysis, effects, and video encoding. This Skill teaches an agent to write a complete single-file Python renderer that converts video, audio, images, text, or pure math into colored ASCII character video output (MP4, GIF, or PNG sequence) without a GPU. ## Core Features & Use Cases - Six Input Modes: Video-to-ASCII conversion, audio-reactive music visualizers (FFT bands, beat detection), generative procedural animation, hybrid video+audio, timed lyrics/text overlays, and TTS-narrated quote videos via ElevenLabs. - Full Creative Pipeline: A 6-stage architecture (INPUT → ANALYZE → SCENE_FN → TONEMAP → SHADE → ENCODE) with 20+ character palettes, 21 value-field generators, 38 composable shaders, 20 blend modes, particle systems, feedback buffers, and adaptive tonemapping. - Hardware-Adaptive Rendering: Auto-detects CPU/RAM, picks quality profiles (draft to 4K), and parallelizes frame rendering across workers piping raw RGB to ffmpeg. - Use Case: Ask for a 45-second lo-fi audio-reactive visualizer; the agent designs a creative concept, writes the renderer with per-scene palettes and effects, test-renders key frames, and encodes a 1080p 24fps MP4. ## Quick Start Ask the agent to create an audio-reactive ASCII music visualizer from your audio file, specifying the mood, resolution, and output format 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 with ffmpeg or OpenCV, map per-cell luminance to characters from a density-sorted palette, and render each frame onto a pixel canvas with pre-rasterized font bitmaps. Pipe the raw RGB frames to ffmpeg for H.264 encoding into an MP4.

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

Analyze the audio with SciPy FFT to extract frequency bands, RMS energy, spectral centroid, and beat onsets per frame. Drive value-field generators (rings, plasma, particles) with those features, then tonemap, apply shaders, and encode with the audio muxed back in.

What Python libraries are needed for ASCII video rendering?

The stack requires Python 3.10+, NumPy for vectorized array math, Pillow for font rasterization and image I/O, SciPy for audio FFT analysis, and the ffmpeg CLI for decoding input and encoding output. OpenCV and an ElevenLabs API key are optional.

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, and verify canvas.mean() stays above 8 on test frames.

Why does ffmpeg hang when piping rendered frames from Python?

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

Can ASCII video render without a GPU?

Yes, the entire pipeline runs on CPU using NumPy-vectorized effects and parallel worker processes. At 1080p 24fps expect roughly 100-200ms per frame, so a 2-minute video renders in about 7 minutes on 8 workers.