How apollo478/ascii-converter works
ASCII Converter is a Go CLI for turning images, GIFs, videos, audio, and Linux webcam streams into terminal ASCII previews or saved media. Its main flow is command dispatch, media-specific decoding or frame/sample acquisition, ASCII rendering, then terminal display or encoded output. The README documents all five media workflows; sampled source confirms the video, camera, audio, and image/GIF paths. Camera/audio CLI wiring beyond the excerpts is shown only at the documented subsystem level.
Main entry points: cli.go Command dispatch · converter.go Terminal display · audioConverter.go Audio visualizations · videoConverter.go Camera rendering
Components 24
CLI workflows
- Program entry
main.go - Command dispatch
cli/cli.go - Image conversion
cli/cli.go - GIF conversion
cli/cli.go - Video workflow
cli/cli.go - Camera workflow
cli/cli.go - Audio workflow
cli/cli.go
Media acquisition
- Image/GIF decode
cli/cli.go - Video frame reader
converter/FrameReader.go - Camera frame reader
converter/FrameReader.go - Audio sample reader
converter/audioReader.go - Video recorder
converter/recorder.go
ASCII rendering
- Image to ASCII
converter/converter.go - GIF frame rendering
converter/converter.go - Video frame rendering
converter/converter.go - Audio visualizations
converter/audioConverter.go - Camera rendering
converter/videoConverter.go
Display and export
- Terminal display
converter/converter.go - Image export
converter/converter.go - GIF export
converter/converter.go - Video export
converter/videoConverter.go - Camera recording
converter/videoConverter.go
Other components
- User
- FFmpeg
Connections 35
- User → Program entry: runs command
- Program entry → Command dispatch: calls
- Command dispatch → Image conversion: dispatches
- Command dispatch → GIF conversion: dispatches
- Command dispatch → Video workflow: dispatches
- Command dispatch → Camera workflow: dispatches
- Command dispatch → Audio workflow: dispatches
- Image conversion → Image/GIF decode: opens and decodes
- Image conversion → Image to ASCII: converts image
- Image conversion → Image export: writes image
- GIF conversion → Image/GIF decode: decodes GIF
- GIF conversion → GIF frame rendering: converts frames
- GIF conversion → GIF export: writes animation
- GIF frame rendering → Image to ASCII: converts frames
- Video workflow → Video frame rendering: converts video
- Video frame rendering → Video frame reader: reads frames
- Video frame reader → FFmpeg: runs decoder
- Video workflow → Video export: saves frames
- Video export → Video recorder: encodes frames
- Video recorder → FFmpeg: runs encoder
- Camera workflow → Camera rendering: starts capture
- Camera rendering → Camera frame reader: reads frames
- Camera frame reader → FFmpeg: runs capture
- Camera workflow → Camera recording: requests recording
- Camera recording → Video recorder: writes frames
- Audio workflow → Audio visualizations: starts visualization
- Audio visualizations → Audio sample reader: reads samples
- Audio sample reader → FFmpeg: runs decoder
- Video frame rendering → Image to ASCII: renders pixels
- Camera rendering → Image to ASCII: renders pixels
- Audio visualizations → Terminal display: prints visualization
- Image conversion → Terminal display: previews image
- GIF conversion → Terminal display: previews frames
- Video workflow → Terminal display: previews frames
- Camera workflow → Terminal display: previews frames