|
Live ASCII Streaming of Video
by Drazen Pantic
pdf (12 Kb)
1. Introduction
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.
1.1. History
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, [1].
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 [2], although
author does not provide source code, and require a his name and
URL to appear in the accompanied Web page.
1.1.3 HasciiCam
Major step forward towards live ASCII streaming has been made
by Jaromol and the group around dyne.org, [3]. 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 [3]).
2. Live ASCII Streaming Implementation
The following (ASCII) scheme shows the flowchart of the implemented
live streaming:
|video feed
|
v
+------------|-------------+
| Linux box with: | | - bttv video card | | - hasciicam software |
-------------|--------------
|
V
,-----------.
,-' ASCII file `-.
( (10-15 frames/sec))
`-. ,-'
`-----------'
|
V
+-------------+
| Web server |
+-------------+
|
V
,-------------.
,-' ASCII Java `-.
( player )
`-. ,-'
`-------------'
2.1. Encoding
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 [4].
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 [4], 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, [5]
The demonstration of the live feed from the cam in front of the
Location One is available on [6].
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.
[1] http://www.ljudmila.org/~vuk/ascii/aae.html
[2] http://www.ericharshbarger.com/java/
[3] http://ascii.dyne.org/
[4] http://204.181.65.31/ascii/aka
[5] http://location1.org/documentation/Asciimator.java
[6] http://204.181.65.31/ascii/
|