git clone https://github.com/lomnom/VidPlay
cd VidPlay
git clone https://github.com/lomnom/nncurses
brew install opencv
g++ -std=c++2a $(pkg-config --cflags --libs opencv4) -O3 Play.cpp -o play
mv play /usr/local/bin/play
cd ..
rm -rf VidPlaygit clone https://github.com/lomnom/VidPlay
cd VidPlay
git clone https://github.com/lomnom/nncurses
sudo apt-get install libopencv-dev
clang++ -std=c++2a -O3 $(pkg-config --cflags --libs opencv) -lpthread -pthread Play.cpp -o play || clang++ -std=c++2a -O3 $(pkg-config --cflags --libs opencv4) -lpthread -pthread Play.cpp -o play
sudo mv play /usr/local/bin/play
cd ..
rm -rf VidPlayrm /usr/local/bin/playViewing media:
play /path/to/media1.extension /path/to/media2.extension ...(^ is video only)
q: quit- ^
p: pause/unpause d: enable debug modee: reduce greyscalingr: increase greyscalingE: reduce brightnessTreshR: increase brightnessTresht: toggle turning blackened colored pixles to greyscale- ^
g: goto ms G: goto filen: go to previous filem: go to next file
(^ is video only)
fileno: current file by position in terminal args- ^
Frame: current frame - ^
fps: fps stated in video header - ^
Cms: ms that the viewer should be displaying - ^
Rms: ms that the viewer is actually displaying - ^
preccess: Time taken to proccess frame from rgb to xterm - ^
Project: Time taken to display frame on terminal - ^
sleptTime: the delay for the previous frame - ^
error: error in previous frame's delay greynessTresh: greyness treshold before pixels are greyscaledbrightnessTresh: brightness treshold before pixels are greyscaledgsBlack: if blackened colored pixles are turned to greyscale- ^
paused: if video is paused
- Fast and written in c++
- Accelerates and decelerates to make up for lag/overspeed for videos.
- Optimises output to allow for smooth displaying on slow terminals and lower latencies over ssh
- Makes use of 240 ansi colors to display media (excluded first 16 as color depends on terminal and is slow to calculate)
- Uses ascii block elements to fit more detail into smaller spaces (2 pixels per character).
- Accurate fps limiting for videos
- Customisable algorithm for converting rgb to xterm-256color
(cant asciinema as the escape codes makes it stroke. The block elements also look terrible there.)
(The command that was used in the video is play E.mp4 W_A_R_P.png WIDE.mp4 RICK.mp4)
- Add audio (SKREEEEEEE)
- dITheRiNG???/?!!?!1?/
Please open a github issue if you see any issues, i'll fix it when i see it