hasciicam - (h)ascii for the masses!


hasciicam [ fB-hvqfR ] [ fB-m fImodefR ] [ fB-d fIdevicefR ] [ fB-i fIinputfR ] [ fB-o fIoutputfR ] [ fB-f fI:user%pass@host:/dirfR ] [ fBrendering-optionsfR ]


hasciicam makes it possible to have live asciivideo on the web. It takes video from a capture device (like tv cards or quickcams) and renders it into ascii, formatting the output into an fBhtml pagefP with a refresh tag or in a fBlive asciifP window or in a simple fBtext filefP as well, giving the possiblity to publish on the web a live asciivideo feed browsable without any need for browser's plugins.

hasciicam grabs frames using fBVideo4LinuxfP api, renders them into ascii using fBAA-libfP engine and is capable of armoring them with auto-refreshing

code. It's being used also fBjpeglibfP for optionally refresh a small jpeg image, so that it can work also as a simple webcam (or showing both, jpeg and asciivideo).


-h --help

Display a help text and quit.

-v --version

Display version and quit.

-q --quiet

Be quiet and don't show hardware detection.

-m --mode

Selects the mode in wich hasciicam will run:

live will use the console (or eventually open one under X display) to show full speed ascii video.

html will write html formatted ascii video every refresh seconds into file aafile.

text will write plain text ascii video every refresh seconds into file aafile.

Default mode is fBlivefP. Mode selection is XOR'ed.

-d --device

Use specified capture device. Default is fB/dev/videofP.

-i --input

Selects the fBdevicefP's input channel to be used for grabbing frames. Default is fB1fP.

-o --aafile

Defines the file where to save rendered ascii, overwrited every fIrefreshfP seconds. Default is fBhasciicam.htmlfP when in fBhtmlfP mode, fBhasciicam.txtfP when in fBtextfP mode (useless when in fBlivefP mode).

-f --ftp

Ftp pushes the selected output file to an ftp account specified within an expression like If the password is not specified (omit %pass) hasciicam asks for it on stdin (hidden while typing). If the directory is not specified it is assumed to be the first ftp directory where user logs in. Remote file is refreshed depending on fBrefreshfP rate and connection bandwidth, a fIscolopendrofP temporary file is created to keep clients on the other side refreshing smooth.

-D --daemon

Forks to background and runs in daemon mode.


-S --font-size

Selects a font size from fB1fP to fB4fP used in html rendering. default is fB1fP (only useful when in fBhtmlfP mode).

-a --font-face

Selects a font face to be used in html rendering, it should be fixed size for better results. default is fBcourierfP (only useful when in fBhtmlfP mode).

-r --refresh

Specifies the refresh interval in seconds between each grabbed frame. Default is fB2fP (useless when in fBlivefP mode).

-b --aabright

Specifies brightness level for the aa_render, from 0 to 100. Default is fB60fP.

-c --aacontrast

Specifies contrast level for the aa_render, from 0 to 100. Default is fB4fP.

-g --aagamma

Specifies gamma correction level for the aa_render, from 0 to 100. Default is fB3fP.

-I --invert

Invert and render the resulting negative ascii.

-B --background

Specifies the background color to be used in the form of a fIhex RGB tripletfR (without the leading #). Default is fB000000fP for black (only useful when in fBhtmlfP mode).

-F --foreground

Specifies the foreground color to be used in the form of a fIhex RGB tripletfR (without the leading #). Default is fB00FF00fP for green (only useful when in fBhtmlfP mode).


hasciicam -m html -o watchme.html

puts your fIhtmlfP formatted ascii into watchme.html - then just open it with your favourite browser.

hasciicam -m text -o ~/.plan

puts your ascii into your local .plan (fingercam) hasciicam -m html -S 2 -o index.html -f

generates an hascii video with font size +1 and uploads the frames in ftp passive mode on the server, with user jaromil password sasuchen, inside the korova directory


When using a usb webcam, a supported size needs to be specified. The minimum or maximum detected size should work, also a size of 160x120 mostly gives good results, with unsupported sizes you will get unexpected results.


Report bugs to Please include a complete, self-contained example that will allow the bug to be reproduced, information about which version of hasciicam you are using, which operative system and the complete device detection output.


jaromil [aka Denis Roio] <fIjaromil@dyne.orgfR>


Copyright (c) 2001-2006 Denis Roio <>

Permission is granted to copy, distribute and/or modify this manual under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. Permission is granted to make and distribute verbatim copies of this manual page provided the above copyright notice and this permission notice are preserved on all copies.


The most recent version of hasciicam sourcecode and up to date documentation is always available for download from fIhttp://ascii.dyne.orgfR.


info aalib

This HTML page was made with roffit.