#title HasciiCam

<contents>

* HasciiCam

<class name="logo">
[[images/jaromil-hascii-sm.png]]
</class>


HasciiCam makes it possible to have live ascii video on the web. It
captures video from a tv card and renders it into ascii letters,
formatting the output into an html page with a refresh tag, or in a
live ascii window, or in a simple text file. It gives the possiblity
to anybody that has a bttv card, a unix box and a cheap modem line to
show live (h)ascii video can be viewed without any need for extra
applications, plugins, java etc.

 - [[hasciicam001.html][HTML mode screenshots]] feat. chmod & thing.net
 - [[live-screenz.html][LIVE mode screenshots]] feat. hasciish jaromil
 - [[rms-hasciicam.html][ASCII portrait]] of Richard Stallman

<class name="rastasoft">
[[http://rastasoft.org][RASTASOFT]] 
</class>

** Documentation

*** Features

 - low bandwidth live cam "streaming"
 - command line settings
 - customizable refresh rate
 - amazing live mode
 - gives you the coolest .plan you ever had
 - draws nifty symbols on your face

*** Requirements

To run this software you need to have installed a working Free
GNU/Linux system, like for instance [[http://dynebolic.org][dyne:bolic]].

You can compile HasciiCam from sourcecode or you can look into the
list of packages for your GNU/Linux distribution if a compiled version
is allready there.  You also need to install [[http://aa-project.sourceforge.net/aalib][AA-lib]] on your system, it
is an excellent library used to convert video in ascii letters.

As hardware you need to have a webcam or a videocard supported by
"video 4 linux", most of the gear you can buy around should
work well.

*** Internals

Hasciicam is written in plain C and is operated via command line,
comes with a comfortable help ( -h option ) and a [[manpage.html][manual page]].

Hasciicam grabs video using Video4Linux2 api: grabs YUV420 and uses
the luminance component to obtain a grayscale frame, then renders each
frame into (h)ascii using the AA-lib engine, armoring it in an html
with a refresh tag.

Ftp push technology is supported, to publish your hascii feed on your
online webserver: that is implemented using a simple C code which
wraps execution of your unix ftp client.

HasciiCam is written in C and should be portable to various operating
systems besides GNU/Linux, still you are strongly advised (is good for
your karma) to use it on free GNU systems - and smoke a spliff
sometimes.

** Download

HasciiCam's source code stable releases are made available on our FTP
at ftp://ftp.dyne.org/hasciicam

Many GNU/Linux distributions have packaged hasciicam ready to
install.

If you use Debian, try our latest release on **APT.dyne.org**

<code>
deb http://apt.dyne.org/debian stable main
</code>

If you find bugs and know how to report them in proper detail, please
use [[http://bugs.dyne.org][bugs.dyne.org]].



** Development

Hasciicam is an early [[http://rastasoft.org][RASTASOFT]] creation, *JAH BLESS*

The code repository is on [[http://code.dyne.org][code.dyne.org]]:

<code>
 git clone git://code.dyne.org/hasciicam.git
</code>

To contribute, contact [[http://dyne.org/contact][dyne.org hackers]] (patches welcome) or just [[http://dyne.org/donate][donate to dyne.org]].

Hasciicam.c has been originally written by Jaromil

Jan Hubicka is the creator of AA-Lib,the library used to render video
in ASCII

Diego "Rapid" Torres contributed security patches

Matteo "Blended" Scassa contributed support of webcams

Dan Stowell contributed V4L2 support


Thanks go to:
 - Gerd Knorr - for video4linux
 - Thomas Pfau - for the ftp library
 - Josto "Mathop" Chinelli - help on css with style
 - August Black - io buzz hacking
 - Boffh - usb cams hacking
 - Martin guy - karma to avoid buffer overflows
 - Erich "rat" Berger - for the text dump
 - Pbm & Megabug - watching ascii horizons
 - Alessandro Preite Martinez - Irix/SGI ports
