an ASCII frames generation app that converts videos into ASCII art frames and exports them as downloadable text files
| stage | process | description |
|---|---|---|
| video upload | user uploads a video file | accepts MP4/WebM files up to 25MB |
| frame extraction | .gif frames are extracted to be processed | FFmpeg.wasm extracts PNG frames from video |
| ascii conversion | frame by frame ASCII art created on server | Canvas API converts pixels to ASCII characters using luminance mapping |
| txt file creation | individual TXT files are packaged | each frame becomes a standalone text file |
| zip packaging | ZIP with the txt files is created | JSZip bundles all frames into a single archive |
| download ready | download ZIP file | user receives complete ASCII animation package |
all processing happens locally - your videos never leave your browser the ASCII conversion engine uses advanced luminance calculation and optimized character mapping to create stunning terminal animations from any video content
Technologies:
- next.js 15
- typeScript
- FFmpeg.wasm (WebAssembly-based video processing)
- canvas API for image manipulation
- JSZip for client-side archive creation
- tailwindCSS for styling
needs: node.js, pnpm (dont need imagemagick OR ffmpeg system tools)
pnpm install
pnpm devwe work on branches off of main; follow these steps to contribute:
git checkout maingit pullgit checkout -b your-github-username/your-branch-name- make your changes
- lint the code with
pnpm lint git add .git commit -m "your message"- push your branch commits to the remote repository
- go to GitHub and raise a pull request of your branch
- wait for approval
- resolution of errors (if any)
- merge completion
git checkout maingit pullgit branch -d your-github-username/your-branch-name
you are now ready to start the process over again.
- maximum file size: 25MB
- maximum duration: 15 seconds
- supported formats: mp4, webm
