Code for video playback was taken from theriseof9/ascii-video-player. Improved performance and added a few more features.
Plays a video file as ASCII text on your terminal in realtime. High performance C++ code allows realtime smooth 60fps playback (depending on terminal size) with audio playback and A/V sync.
Operating system compatibility:
OS | Status |
---|---|
Windows | ✅ Verified: Builds and runs. |
MacOS | ❓ Unknown: Should work in theory but untested. |
POSIX-compliant OS | ❓ Unknown: Should work in theory but untested. |
- Smooth 60fps playback (depending on terminal size);
- Audio playback;
- A/V sync;
- Supports YouTube video URLs;
During project development all dependencies were installed using vcpgk which guarantees that the project will build and run on Windows. If you are using another OS, you may need to install the dependencies manually.
- FFmpeg (or FFPlay)
- OpenCV
- SFML / audio
- HTTPLib
- Nlohmann JSON
- Install dependencies;
- Link dependencies to project;
- Build project;
- Open console and navigate to the folder where your exe file is located;
- Run the file in your console with either path to your video file or link to the YouTube video as an argument.
A few examples of how to run the program:
video_to_ascii.exe "C:\Users\user\Videos\video.mp4"
video_to_ascii.exe "https://youtu.be/mgh07DuvAWM?si=dK12xaNkWardKpGW"
- Download the latest release from here (currently only Windows executables are available);
- Open console and navigate to the folder where your exe file is located;
- Run the file in your console with either path to your video file or link to the YouTube video as an argument.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Note that all libraries must be linked statically, to build a single exe file.