Vnc2swf version 0.1
README

$Id: README,v 1.3 2002/06/19 17:56:53 yusuke Exp $


======= LICENSE

Vnc2swf is Copyright (C) 2002 Yusuke Shinyama.  All Rights Reserved.

VNC is Copyright (C) 1999 AT&T Laboratories Cambridge.  All Rights Reserved.

This software is distributed under the GNU General Public Licence as published
by the Free Software Foundation.


======= WHAT'S IT?

Vnc2swf is a recoding tool for VNC, a protocol to manipulate
remote window systems via network, developed by AT&T Laboratories
Cambridge. It records VNC sessions and generates a Macromedia
Flash(TM) movie file (SWF).  It can be used as an X11 recorder or
a Windows desktop recorder.

Vnc2swf Homepage: http://www.unixuser.org/~euske/vnc2swf/
VNC Homepage: http://www.uk.research.att.com/vnc/


======= YOU NEED

Ming, a library to generate Macromedia Flash (SWF) file.
http://ming.sourceforge.net/


======= INSTALL

  $ xmkmf -a
  $ make
  $ make install


======= USAGE

The usage is quite similar to that of vncviewer.
First launch a VNC server (Xvnc or VNC server on Windows) and
connect to the server with vnc2swf just like vncviewer.

Vnc2swf automatically creates a SWF file (the filename is
"out.swf" in default) and records all image updates including
mouse pointer.

Vnc2swf accepts all options used in vncviewer. 
Additionally it also accepts the following options:

  -dumpfile <filename>
              Specify the filename of the generated SWF file.
  -framerate <frames-per-sec>
              Specify the frame rate of the generated movie.
  -nommhack
              Specify not to apply Macromedia hack.
              For some misterious reasons Macromedia Flash Player
              implementation displays a bitmap off by 1pixel.
              This doesn't occur in libflash. So a movie created for
              Macromedia Flash Player doesn't show correctly on
              libflash, and vice versa. If you want to play the movie
              with libflash, specify this option.

Sample session:

  > $ vncserver
  >
  > New 'X' desktop is grape:1
  > 
  > Starting applications specified in /home/yusuke/.vnc/xstartup
  > Log file is /home/yusuke/.vnc/grape:1.log
  >
  > $ vnc2swf -dumpfile output1.swf :1
  > VNC server supports protocol version 3.3 (viewer 3.3)
  > No authentication needed
  > Desktop name "yusuke's x11 desktop (grape:1)"
  > Connected to VNC server, using protocol version 3.3
  > VNC server default format:
  >   8 bits per pixel.
  >   True colour: max red 7 green 7 blue 3, shift red 0 green 3 blue 6
  > WriteInitMovie: Opening file: "output1.swf" with frame rate 12
  > Using default colormap which is TrueColor.  Pixel format:
  >   16 bits per pixel.
  >   Least significant byte first in each pixel.
  >   True colour: max red 31 green 63 blue 31, shift red 11 green 5 blue 0
  > Using shared memory PutImage
  > Same machine: preferring raw encoding
  > ^C
  > CleanupSignalHandler called
  > ShmCleanup called
  > WriteFinishMovie: 96 frames (8.0 sec), expanded_image: 2488480
  > WriteFinishMovie: 8617 bytes dumped.
  > $


======= NOTICE

All bitmap images contained SWF files are compressed.  However,
the Flash player holds all expanded images throughout the movie.
So it can be inflated to a very big process!  For your
convenience, this program shows the total size of all images
expanded. But remember that the size of movie is affected not by
the duration of the movie, but by the total size of image updated.

It seems that Macromedia Flash Player doesn't accept any frame
rate faster than 12.0 fps.


======= BUGS

Slow.

PseudoColor is not supported.

The program doesn't care of Expose / GraphicExpose event.

The VNC server might die occasionally due to connection timeout
when vnc2swf gets too slow.
