vnc2swf

Screen Recorder

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

$Id: vnc2swf.html,v 1.3 2005/10/29 06:23:47 euske Exp $

NOTICE: This document is for the old C version of vnc2swf, which is no longer maintained. For new features and supports, please consider using pyvnc2swf instead.


Syntax

$ vnc2swf [options] swf_filename [host][:display] > html_filename

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.

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

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 a SWF movie as the given swf_filename and a wrapper HTML file into standard output.

After recording, you can edit the generated movie or add a seekbar to the html file with a separated pyvnc2swf package.

Sample Session

Flash demo (made with vnc2swf):

Here is a sample interatcion using vncserver.

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

New 'X' desktop is grape:1

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

(start vnc2swf)
$ vnc2swf out.swf :1 > out.html
vnc2swf version 0.5.0
Copyright (C) 2002-2005 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)
(type vnc password)
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: Pid=20341, Opening file: "a.swf" for a movie size (640, 480), frame rate 12.00...
CleanupSignalHandler called
=== WriteFinishMovie: 23412 bytes dumped into "a.swf".

It generates an HTML file. Use this file to play the movie: (Do NOT play the generated SWF movie directly)

$ cat out.html
<html><body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="480"
 codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0">
<param name="movie" value="a.swf">
<param name="play" value="true">
<param name="loop" value="true">
<param name="quality" value="high">
<embed src="a.swf" width="640" height="480" play="true" loop="true" quality="high"
 type="application/x-shockwave-flash"
 pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</object>
</body>
</html>

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).
-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.
-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 which is of the form widthxheight+x+y. This is useful if you want to record a specific region rather than the entire screen.

Bugs

See Also

Author

Yusuke Shinyama (yusuke @ cs dot nyu dot edu)

Changes

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-2005 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