AsciiCam/README.md

53 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

# AsciiCam Version v1.0.0
Ascii video output from webcam in terminal.
2026-05-13 21:36:56 +05:30
## Demo
2026-05-30 20:47:23 +05:30
<img src="assets/demo2.gif" width="325">
2026-05-13 21:36:56 +05:30
### Edge Detection and invert (brightness) threshold change
<img src="assets/demo-edgedetection.gif" width="325">
2026-05-20 17:54:48 +05:30
## Build and Run
```
git clone https://github.com/Harshit-Dhanwalkar/AsciiCam.git
cd AsciiCam/C/
make
cd build/
./webcam_ascii --help
```
Run with all or selected plugins (currently 3)
```
./build/webcam_ascii -p build/invert.so -p build/threshold.so -p build/edge_detect.so
```
2026-05-20 17:54:48 +05:30
2026-05-13 21:36:56 +05:30
## TODO
- [x] Adjust width and height of capturing frame.
2026-05-20 17:54:48 +05:30
- [x] A producer/consumer thread splitting.
- [ ] Custom ASCII charset via config file
- [x] Brightness/contrast adjustment.
- [x] Reverse video - Invert brightness $\rightarrow$ charset mapping
- [x] Color output - Extract U/V channels, map to ANSI/RGB codes
2026-05-13 22:18:22 +05:30
- [ ] Add feature to record and save it in popular video formats like `.mp4`, `.mov` and `.gif`.
- [x] Dithering effect.
2026-05-20 17:54:48 +05:30
- [x] Sobel edge detection (kernel convolution). Algorithm reference: https://homepages.inf.ed.ac.uk/rbf/HIPR2/sobel.htm
2026-05-25 13:50:49 +05:30
- [x] SIMD for YUYV to grayscale coversion.
- [x] Hot-reloading plugin system
2026-05-30 20:47:23 +05:30
- [ ] Analyzing frames for what changed (inter-frame compression)
- [ ] Temporal Compression
- [ ] Lookup Table (LUT) Cache Optimization
2026-05-30 20:47:23 +05:30
- [ ] Migrate from C to Cpp after, I consider, I have done enough optimisation in C.
2026-05-31 17:15:53 +05:30
2026-05-31 17:26:49 +05:30
---
2026-05-31 17:15:53 +05:30
Project is under [PolyForm Noncommercial License BY-NC LICENCE](LICENCE)
For commercial use, please contact me at *harshitpd1729@gmail.com* to purchase a commercial license."