Skip to content

๐ŸŽฅ๐Ÿ—ฃ video chat in your terminal ๐Ÿ’ป๐Ÿ” 

Notifications You must be signed in to change notification settings

zfogg/ascii-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ascii-chat

ASCII video chat.

Probably the first command line video chat progam.

It just prints ASCII, so it works on your rxvt-unicode in OpenBox, a Putty SSH session, and even iTerm on OSX.
It even works in an initial UNIX login shell, i.e. the login shell that runs 'startx'.

Eventually it will support 3+ simultaneous people, 'google-hangouts' style, and sound via PulseAudio or something.

Animated demonstration

Dependencies

  • Most people: apt-get install clang libopencv-dev libjpeg-dev
  • ArchLinux masterrace: pacman -S clang opencv libjpeg-turbo
  • MacOS: brew install opencv@2 jpeg findutils
    • cp .macos.env .env
    • source .env

NOTE: I recommend using direnv with a .envrc file and sourcing the .env file from there

Build and run

  • Clone this repo onto a computer with a webcam.
  • Install the dependencies.
  • run make.
  • run ./bin/server -p 9001 in one terminal, and then
  • run ./bin/client -p 9001 -a 127.0.0.1 in another.

NOTE: run ./bin/server -h to see options

TODO

  • Client should continuously attempt to reconnect
  • Client program should accept URL arguments, as well as IP addresses like it does now
  • Colorize ASCII output
  • Refactor image processing algorithms
  • Client should gracefully handle frame width > term width
  • Client should gracefully handle term resize event
  • Rewrite entire thing in Rust!
  • Compile to WASM/WASI.

Bitdeli Badge

About

๐ŸŽฅ๐Ÿ—ฃ video chat in your terminal ๐Ÿ’ป๐Ÿ” 

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published