Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


A point to point color terminal video chat.

Subscribe to updates I use p2pvc

Statistics on p2pvc

Number of watchers on Github 2778
Number of open issues 10
Average time to close an issue about 10 hours
Main language C
Average time to merge a PR about 12 hours
Open pull requests 0+
Closed pull requests 0+
Last commit over 2 years ago
Repo Created over 4 years ago
Repo Last Updated over 1 year ago
Size 12.5 MB
Organization / Authormofarrell
Page Updated
Do you use p2pvc? Leave a review!
View open issues (10)
View p2pvc activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating p2pvc for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


A point to point color terminal video chat.


and here's a still image


Arch users can install p2pvc-git from the AUR


  • OpenCV
  • PortAudio
  • ncurses


 sudo apt-get install libncurses-dev libopencv-dev portaudio19-dev

OS X (with Homebrew):

 brew tap homebrew/science
 brew install ncurses portaudio opencv

OS X (with MacPorts):

 sudo port install ncurses portaudio opencv


Make the binary.


Video chat with yourself to test the camera. (Be sure to mute your mic or speakers or you'll get feedback!)

./p2pvc -v


Audio only

./p2pvc [ip address]


-v enables video chat.

 ./p2pvc [ip address] -v

-d sets the dimension of the video in [width]x[height] format.

 ./p2pvc [ip address] -v -d 200x50

-A and -V allow you to specify the port the audio and video run on respectively.

 ./p2pvc [ip address] -v -A 1337 -V 1338

-b displays incoming bandwidth in the top-right of the video display.

 ./p2pvc [ip address] -v -b

-e to print stderr (which is by default routed to /dev/null).

 ./p2pvc [ip address] -e

-B renders in Braille Unicode characters. Note that the dimensions must both be divisible by 4.

 ./p2pvc [ip address] -v -B -d 200x152

-I sets the threshold for turning pixels on (when using the -B flag). Ranges from 1 - 99, defaults 25.

./p2pvc [ip address] -v -B -I 50

-E sets and edge filter with [lower]:[upper] bounds.

./p2pvc [ip address] -v -B -E 100:300

-c sets the color of the video. Used in the form [r]:[g]:[b]. Each color ranges from 0 - 100.

 ./p2pvc [ip address] -v -c 0:100:0

-s sets the saturation of the colors in the video. 0.0 is greyscale, 2.0 is default.

 ./p2pvc [ip address] -v -s 3.0

-a sets custom ASCII character maps. Repeat characters to weight their frequency.

 ./p2pvc [ip address] -v -a " ......#####"

-r sets the refresh rate.

 ./p2pvc [ip address] -v -r 10


Known problems and resolutions

Black and white

This happens when p2pvc thinks the terminal doesn't have enough colors to display all 256. Try export TERM=xterm-256color or equivalent to get it working.

No connection made

p2pvc does not get around NAT, so you may need to port forward. It uses ports 55555 and 55556 for audio and video respectively.

p2pvc open issues Ask a question     (View All Issues)
  • about 3 years Command for installation in ubuntu is not working for linux mint
  • over 3 years Error around make
  • over 4 years Completion of error handling
  • over 4 years Multiple people can connect to the same instance at the same time
  • over 4 years No Video and CPU usage at 100%
  • over 4 years Audio compression
  • over 4 years Braille option to better rendering.
  • over 4 years Video Buffering
  • over 4 years messed up colors
  • over 4 years Received failed. errno: 22
p2pvc list of languages used
Other projects in C