vnc2swf

Screen Recorder

Vnc2swf Home Page: http://www.unixuser.org/~euske/vnc2swf/index.html

$Id: vnc2swf.html,v 1.4 2004/05/09 16:20:28 yusuke Exp $

Syntax

vnc2swf [ options ] swf_filename [ host ][: display ]

Description

vnc2swf is a screen recording tool for X-Window (X11), Windows and Mac OS Desktop. It records the live motion of a screen and generates a Macromedia Flash(TM) movie (.swf) file. Motion capturing is divided into two parts:

  1. Convert a screen image into some portable image format.
  2. Record the captured images in a Flash movie.
vnc2swf takes the second part of this process. It captures a screen image via Virtual Network Computing (VNC) protocol. It relys on a separated VNC server such as XVnc, WinVNC or OSXVnc for the first part. A VNC server captures live screen images and sends them to vnc2swf through the network. This allows us to record various kinds of desktops (X11, Windows and MacOSX) with one program.

The usage of vnc2swf is similar to that of vncviewer, a standard VNC client which was included in the original VNC distribution. First you need to start a VNC server. Then you can launch vnc2swf and connect to the server with your password (if any). After a session begins, pressing F9 key starts screen recording. When you quit the program (by choosing "Quit" from a popup menu or sending SIGINT), vnc2swf writes the Flash movie into the given swf_filename.

You need to obtain at least one VNC server in addition to the vnc2swf distribution. Currently the following VNC servers are supported:

Options

Since vnc2swf is a derivative of vncviewer, it accepts most of options which were for vncviewer, too. You can get a list of options by giving -h as an option to vnc2swf. Most of these options can also be specified as X resources.

Here are additional options for vnc2swf:

-framerate frames_per_second
Set the framerate of the movie to frames_per_second. The default value is 12 (fps).
-soundfile mp3_to_play
Specify a mp3 file (e.g. instructions by voice) to be attached to the movie. If you want to record a realtime sound stream, specify a FIFO (named pipe) here and direct the output of a MP3 recorder to the FIFO (you need ming-input-stream.patch (for ming-0.2a) in this case). This is contributed by by Tim Jansen <tim at tjansen dot de>.
-nommhack
Disable Macromedia hack. For some reason, 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 specifically with libflash, use this option.
-startrecording
Normally when vnc2swf launches it doesn't record a screen until F9 key is pressed. This option forces vnc2swf to start recording immediately after a session begins.
-recordingmethod 0 or 1
Specify the recording method. You can also change this option by pressing F10 key during recording.
-immediately
Equivalent to -recordingmethod 0.
-buffered
Equivalent to -recordingmethod 1.
-nowindow
Non-window mode. This prevents vnc2swf from displaying anything on a screen. This is useful when you use x11vnc because x11vnc tries to capture the vnc2swf window which shows the captured image itself.
-nostatus
Don't display the recording status on a screen.
-clippinggeometry geometry
Instruct vnc2swf to record only the part of a screen specified by the geometry. Geometry is speficied in the form of width x height[+-]x[+-]y. This is useful if you want to record a specific region rather than the entire screen.

Sample Session

$ vncserver :1 -geometry 640x480  (start VNC Server)

New 'X' desktop is grape:1

Starting applications specified in /home/yusuke/.vnc/xstartup
Log file is /home/yusuke/.vnc/grape:1.log

$ vnc2swf out.swf :1  (start vnc2swf)
vnc2swf version 0.4 - built Apr 16 2004 21:32:59
Copyright (C) 2002-2004 Yusuke Shinyama <yusuke at cs dot nyu dot edu>
- Based on VNC viewer version 3.3.7
  Copyright (C) 2002-2003 RealVNC Ltd.
  Copyright (C) 1994-2000 AT&T Laboratories Cambridge.
  See http://www.realvnc.com for information on VNC.
VNC server supports protocol version 3.3 (viewer 3.3)
Password:  (type your password)
VNC authentication succeeded
Desktop name "yusuke's X 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
Using default colormap and visual, TrueColor, depth 16.
Using viewer's native 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
=== WriteInitMovie: Warning: file out.swf already exists, overwriting.
=== WriteInitMovie: Pid=21007, Opening file: "out.swf" for a movie size (1024, 768), frame rate 12...
=== Stop Recording
=== Start Recording (RECORD_IMMEDIATELY)
=== Stop Recording
CleanupSignalHandler called
=== WriteFinishMovie: 32 frames (2.7 sec), expanded_image: 3242296
=== WriteFinishMovie: 21250 bytes dumped into "out.swf".

(These movies were also recorded with vnc2swf.)

Distributing SWF Files

Important Notice

Bugs

See Also

Author

Yusuke Shinyama (yusuke @ cs dot nyu dot edu)

License

This software is distributed under the GNU General Public Licence as published by the Free Software Foundation. See the file LICENCE.TXT for the conditions under which this software is made available. VNC also contains code from other sources. See the Acknowledgements section below, and the individual files for details of the conditions under which they are made available.

Vnc2swf distribution doesn't contain zlib.

Vnc2swf:
Copyright (C) 2002-2003 Yusuke Shinyama. All Rights Reserved.

VNCViewer:
Copyright (C) 2002-2003 RealVNC Ltd.
Copyright (C) 1994-2000 Olivetti Research Ltd/AT&T Laboratories Cambridge. All Rights Reserved.

Acknowledgements

VNC was originally developed by the RealVNC team while at Olivetti Research Ltd / AT&T Laboratories Cambridge. It is now being maintained by RealVNC Ltd. See http://www.realvnc.com for details.

Vnc2swf distribution contains public domain DES software by Richard Outerbridge. This is:
Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridge.
(GEnie : OUTER; CIS : [71755,204]) Graven Imagery, 1992.


Yusuke Shinyama