A terminal-based video player that converts video frames to ASCII art in real-time with audio support.
- Real-time video playback with synchronized audio
- Adjustable ASCII output size (width/height)
- Smart buffering for smooth playback
- Supports MP4/AVI/MKV/MOV/FLV formats
- Auto-creates `video` directory if missing
- Python 3.8+
- FFmpeg (essential for video processing)
# Install FFmpeg:
# Linux:
sudo apt install ffmpeg
# Windows (via Chocolatey):
choco install ffmpeg
- Clone the repository:
git clone https://github.com/yourusername/ascii-video-player.git
cd ascii-video-player
- Install dependencies:
pip install -r requirements.txt
- Add your video file:
mkdir -p video # Skip if auto-created
cp your_video.mp4 video/
# Basic usage (auto-selects first video in ./video):
python main.py
# Custom ASCII dimensions (width height):
python main.py 80 40
📁 ascii-video-player/
├── video/ # Directory for video files (auto-created)
├── main.py # Entry point with CLI handling
├── movie.py # Core playback engine
├── requirements.txt
└── README.md
- Dual buffering system (`Queue` based)
- Threaded video processing
- Audio-video synchronization
- Dynamic ASCII resolution scaling
- Optimal performance at ~30 FPS
- Requires monospace terminal font
- Large videos may require significant RAM
- First-run will fail until videos are added to `./video`
- Moviepy for video processing
- simple-image2ascii for ASCII-convertation
MIT License - See LICENSE for details.
📧 Email: timoshin_aleksey02@mail.ru
🐙 GitHub: AlekseyScorpi