rfbproxy man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

RFBPROXY(1)			 User's Manual			   RFBPROXY(1)

NAME
       rfbproxy - record, play back, or export a VNC session

SYNOPSIS
       rfbproxy [OPTION]... ACTION files

DESCRIPTION
       rfbproxy	 is  a	simple proxy for VNC, which allows recording of screen
       updates, key presses and mouse events, for later replay to a VNC client
       or export as a series of PPM frames.  It can also record screen updates
       by connecting to a VNC session shared by other client(s).  Exporting as
       a  series  of  PPMs  is	the first step towards converting a session to
       video using tools such as mjpegtools(1), ffmpeg(1), and/or  ffmpeg2the‐
       ora.

OPTIONS
       ACTION is exactly one of:

       -r, --record
	      record  RFB  communications and store them in the file (only one
	      file is allowed for files)

       -p, --playback
	      play back the RFB communications that were captured to the files

       -x, --export
	      export as a series of PPM frames written to standard output  the
	      RFB communications that were captured to the files

       OPTIONS can be:

       -c, --stdout
	      use stdin and stdout for communications with the client.	Useful
	      in conjunction with inetd

       -l, --loop
	      (playback only) when file is finished, replay from first	Frame‐
	      BufferUpdate

       -d, --date
	      (record only) append date to end of filename

       -s, --shared
	      (record only) attach to a shared session

       -v     increase verbosity

       --pause=key
	      (playback	 only)	when  key  is pressed, playback will be paused
	      until it is pressed again.  key can be either a single lowercase
	      ASCII  character	or  an	X  Windows keysym in hex (no preceding
	      '0x').  Note that keys between 'a' and 'f' will  be  interpreted
	      as  hexadecimal  numbers,	 and must be specified as '61' through
	      '66'.  Backspace is 'ff08'; Return is 'ff0d'; Escape is  'ff1b';
	      Delete is 'ffff'. (no default)

       --cycle=key
	      (playback	 only)	when multiple files are specified pressing key
	      will cycle between them.	Specified in same way as --pause.  (no
	      default)

       --type=WHAT
	      (proxy  record only) capture either screen updates (`screen') or
	      keyboard/mouse events (`events').	 If 'events' are requested, an
	      RFM  (remote  framebuffer	 macro)	 file  is recorded that can be
	      played back with rfbplaymacro.  (default screen)

       --framerate=[ntsc|pal|file|m/n]
	      (export only) specify framerate by name or  numeric  ratio  (m/n
	      frames per second) (default ntsc)

       :n     Occupy  VNC  display  localhost:n	 (not  valid  with  -c option;
	      default :10).

       --server=[server]:display
	      (record only) use specified VNC server (default localhost:0)

EXAMPLES
       rfbproxy -r log.fbs
	      Wait for a VNC client to connect to localhost:10,	 then  connect
	      to localhost:0 and relay all VNC traffic between them, recording
	      the screen updates in FBS 1.0 format to log.fbs and exiting when
	      the  client disconnects.	See BUGS AND CAVEATS below for limita‐
	      tions of FBS 1.0.

       rfbproxy -rs log.fbs
	      Connect to localhost:0 as a shared session and record the screen
	      updates  in  FBS	1.1  format to log.fbs until killed (CNTL-C or
	      kill).

       rfbproxy -p log.fbs
	      Wait for a VNC client to connect to localhost:10, then  playback
	      the VNC session recorded in log.fbs.

       rfbproxy -pl --cycle=ff0d log.fbs
	      Looping  playback that resets if the Return key hit.  Useful for
	      playing back sessions whose colors don't show right  because  of
	      client-initiated	changes	 in pixel format; hitting Return right
	      away to reset the playback often helps.  See  BUGS  AND  CAVEATS
	      below for a better solution.

       rfbproxy -x log.fbs | ppmtoy4m -S 420_jpeg | mpeg2enc -o video.mpg
	      Convert  the  VNC	 session  in  log.fbs  to  MPEG-2 using mjpeg‐
	      tools(1).

       rfbproxy -x log.fbs | ppmtoy4m -S 420_jpeg | ffmpeg -f yuv4mpegpipe  -i
       - -vcodec mpeg4 video.avi
	      Convert  the  VNC	 session  in log.fbs to MPEG-4 using ffmpeg(1)
	      (ppmtoy4m(1) is from mjpegtools(1)).

       Here's simple shell script that simultaneously records VNC and audio at
       DVD's 48 kHz sample rate (vrec is from sndtools):

	   #!/bin/sh

	   function terminate() {
		kill $background_pid
	   }
	   trap terminate SIGTERM SIGINT SIGKILL

	   rfbproxy -rs fbs &
	   background_pid=$!

	   vrec -s 48000 -b 16 -r audio

       This  one  converts  the	 recorded  fbs/audio  pair into a DVD-standard
       MPEG-2 with MP2 audio using mjpegtools(1) and toolame(1).

	   #!/bin/sh

	   rfbproxy -x fbs | ppmtoy4m -S 420_jpeg | \
	       yuvscaler -n ntsc -O DVD | mpeg2enc -f 8 -o video.mpv
	   toolame -m mono -s 48 audio audio.mp2
	   mplex -f 8 -o video.mpg audio.mp2 video.mpv

       And this one converts the recorded fbs/audio pair into an DivX6-compat‐
       ible MPEG-4 with MP3 audio using ffmpeg(1) and lame(1).

	   #!/bin/sh

	   lame -m m -x -r -s 48 -h audio audio.mp3
	   rfbproxy -x fbs | ppmtoy4m -S 420_jpeg | \
	       ffmpeg -f yuv4mpegpipe -i - -i audio.mp3 \
		   -vcodec  mpeg4  -vtag DivX -b 800 -g 300 -bf 2 -acodec copy
	   video.avi

       Both MPEG-2 and MPEG-4 files can be converted to Ogg/Vorbis  with  ffm‐
       peg2theora:

	   ffmpeg2theora -o video.ogg video.avi

SECURITY
       To  avoid  recording  passwords	(even  encrypted),  rfbproxy  discards
       authentication  information  when  recording  a	session,  and  instead
       changes the recorded authenticated scheme to look like the session used
       no authentication.

       rfbproxy does not authenticate incomming connections in playback mode.

       Recording keystrokes with --type=events can record passwords.

BUGS AND CAVEATS
       A proxy record will create a version 1.0 FBS file whose	pixel  formats
       can't be reliably interpreted, and will probably only work for playback
       to the same (or a very similar) client that recorded it,	 and  not  for
       export.	 Shard-session records create version 1.1 FBS files that don't
       have this problem.

       Playback makes no attempt to handle  client  FramebufferUpdateRequests;
       it  justs transmits a series of FramebufferUpdates exactly as they were
       recorded.  This defect is most noticeable with clients that pan	across
       a  session larger than their window size; the exposed areas will proba‐
       bly remain undrawn by rfbproxy.	 Clients  that	switch	pixel  formats
       (i.e, xvncviewer) can also be affected by this; parts of the screen can
       remain drawn in a low-resolution format after the client	 has  switched
       to  a  high-resolution  format.	 Fix  this by stopping the client from
       changing pixel formats.	For xvncviewer	try  -autoselect=0  -fullcolor
       (version 4.1.1) or -noauto -depth 24 (version 3.3.7).

       If you intend to use the --loop or --cycle options when playing back an
       FBS 1.0 file, you cannot use the ZRLE encoding when recording.  This is
       because	the zlib state cannot be maintained.  FBS 1.1 files do not use
       ZRLE at all.

       Suspending rfbproxy (or any script using it) when recording  in	shared
       session mode can freeze all sessions attached to the VNC server.

       Neither	export	nor  FBS  1.1 playback work on colormap sessions (only
       true color is supported).

       Pixel formats larger than 32 bits are not supported.

AUTHORS
       Tim Waugh <twaugh@redhat.com>
       Brent Baccala <baccala@freesoft.org>

SEE ALSO
       vncviewer(1), vncserver(1), Xvnc(1), ppm(5), mjpegtools(1), ffmpeg(1).

VNC EXTRAS			  19 Aug 2005			   RFBPROXY(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net