AsciiConverter is a modern WPF application built with .NET that converts standard video files into stylized ASCII art animations. It features a custom playback engine, audio effects processing, and the ability to export your ASCII creations back to MP4 format.
- Video Conversion: Transforms video frames into ASCII characters sorted by density.
- Custom File Format: Saves processed videos as optimized
.asciivfiles containing both frame data and audio. - Audio BitCrusher: Optional "BitCrush" effect to downsample audio for a retro/lo-fi aesthetic.
- MP4 Export: Renders the ASCII playback to a standard
.mp4video file using FFmpeg. - Built-in Player:
- Synchronized audio/video playback.
- Play/Pause, Seek, and Volume controls.
- Fullscreen mode.
- Customization: Select from multiple output colors (White, Lime, Red, Cyan, Yellow).
- Modern UI: Sleek dark-themed interface with custom-styled controls and gradients.
- Framework: .NET 10.0 (Windows) / WPF
- OpenCvSharp4: For high-performance video frame capturing and image processing.
- NAudio: For audio extraction, processing (BitCrushing), and playback.
- Xabe.FFmpeg: For rendering the final ASCII frames and audio into an MP4 container.
- Windows OS
- .NET Desktop Runtime (matching the project target, currently set to .NET 10.0).
- FFmpeg: The application attempts to download FFmpeg automatically on first run, but having it installed is recommended.
- Clone the repository.
- Open the solution in Visual Studio or your preferred .NET IDE.
- Restore NuGet packages:
dotnet restore
- Build and Run:
dotnet run
Click the "Load Video" button to select a source file (supports .mp4, .avi, .mov, etc.) from your computer.
- Project Name: Enter a custom name for your output files.
- Crush Audio: Check this to apply a bit-crushing effect to the video's audio track.
- Create MP4: Check this to generate a playable
.mp4video file alongside the custom.asciivfile. Note: This process may take longer. - Color: Select the foreground color for the ASCII characters (e.g., "Lime" for a matrix style).
Click "Convert & Save". The application will process the video frame-by-frame. A progress bar will indicate the status.
Once finished, click "Play Last Output" to open the built-in player window and watch your creation immediately.
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.