Live ASCII Streaming of Video
by Drazen Pantic
pdf (12 Kb)
The Internet, with its architecture, infrastructure and media characteristics, is a challenging arena for video experimentation and dissemination. The concept of moving images, sound and text over decentralized TCP/IP network lead to the development of Web, streaming technologies and recently peer_to_peer (P2P) standards. Due to basic characteristic of Internet traffic and communication video is, and always was, different from one to many full_broadcast quality distribution channels. And regardless of strong commercial tendency to bring Internet streaming to - in terms of known business and conceptual commercial models - safe heavens of "network television", audio/video presentation on the Internet still remains something different.
One of the experiments in using Internet technology in representing video material is ASCII streaming, in which illusion of the motion is brought to experience by moving ASCII text based images, within the fixed raster matrix on the screen. ASCII streaming does not try to bring Internet multimedia streaming close to "broadcast quality", but goes into totally different direction: representing video as the sequence of moving images composed of ASCII letters.
From the early presence of personal computers and low resolution character based printers, one of the very first applications was printing pictures and photos as ASCII characters, presenting visual images as the matrix of letters. With the development of high quality printers, ASCII pictures almost disappeared.
1.1.2. ASCII Art Ensemble
Recent effort of bringing the sensibility and esthetics of absolute technologies into realm of current practices and technological development is work of ASCII Art Ensemble, .
ASCII Art Ensemble has taken the task of converting seminal pieces of film and video into the ASCII movies: the sequence of text segments - characters representations of the movie frames. They have developed software for converting video into ASCII files as well as the first ASCII player. Player was developed as Open Source Java Applet.
Similar work on creating the Java applet that allows the user to display an animation of ASCII text is available on , although author does not provide source code, and require a his name and URL to appear in the accompanied Web page.
Major step forward towards live ASCII streaming has been made by Jaromol and the group around dyne.org, . Their product, Hasciicam..."makes it possible to have live ASCII video on the web. It captures video from a tv card and renders it into ASCII, formatting the output into an html page with a refresh tag or in a live ASCII window or in a simple text file as well, giving the possibility to anybody that has a bttv card, a linux box and a cheap modem line to show a live ASCII-video feed that can be browsable without any need for plugin, java etc. Hasciicam's source code is released under the Gnu Public License." ...(taken from ).
2. Live ASCII Streaming Implementation
The following (ASCII) scheme shows the flowchart of the implemented live streaming:
| Linux box with: |
| - bttv video card |
| - hasciicam software |
,-' ASCII file `-.
( (10-15 frames/sec))
| Web server |
,-' ASCII Java `-.
( player )
Encoding (converting analog video feed into the sequence of ASCII files) has been done on a Linux box with video card and software (bttv) package that enables digitizing and importing of video material through composite/S-video input.
HasciiCam package decomposes video in the sequences of frames and converts frames into corresponding ASCII file. An example of one such file taken from the live feed from live cam in front of Location One, could look like .
2.2. Java Player
ASCII output from the Hasciicam is then sent to the http server that is to deliver content to Web users. But, st it is obvious from , the output is not directly suitable for presentation as the ASCII video feed. Few additional features were needed:
* better visibility and clear representation of the ASCII feed in a form of a movie;
* platform independence, so that this relatively light video presentation could be played on variety of computers and computing devices;
In order to accomplish those goals we have developed a small, open source Java player for live ASCII feed, ASCIIMATOR. Player has been developed starting from ASCII Art Ensemble Asciimator player, but different nature of live streaming has forced substantial changes of Java code. The player is available as open source and free software, under Gnu Public License, 
The demonstration of the live feed from the cam in front of the Location One is available on .
2.3. Portability and Playing on Handheld Devices
The player software and described practice has been developed having in mind handheld devices (Palmtops, WAB phones, DOCoMO cells in Japa etc) that can handle Java code. ASCII streaming on such devices is fully justified by the low resolution screens and generally modest computing power, not sufficient to decompress highly compressed movies.