Drazen Pantic on Mon, 21 May 2001 09:09:47 +0200 (CEST)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

<nettime> Live ASCII Streaming


Live ASCII Streaming of Video



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 pear_to_pear (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/


#  distributed via <nettime>: no commercial use without permission
#  <nettime> is a moderated mailing list for net criticism,
#  collaborative text filtering and cultural politics of the nets
#  more info: majordomo@bbs.thing.net and "info nettime-l" in the msg body
#  archive: http://www.nettime.org contact: nettime@bbs.thing.net