RE: [SLUG] Re: video screen capture

From: Ken Elliott (kelliott4@tampabay.rr.com)
Date: Thu Jul 22 2004 - 21:55:08 EDT


Ian, since there's nothing in your FAQ:

Why is the FAQ empty?

Will this question be included now? ;->

Ken Elliott

=====================
-----Original Message-----
From: slug@nks.net [mailto:slug@nks.net] On Behalf Of Ian Blenke
Sent: Thursday, July 22, 2004 6:06 PM
To: Robin 'Roblimo' Miller; slug@nks.net
Subject: [SLUG] Re: video screen capture

Robin 'Roblimo' Miller wrote:

> Logan Tygart said he thought you knew some method of doing video
> screen captures in Linux + adding sound, producing mpegs or possibly
> Flash.

Yep, I was about to reply to your request earlier but had a UPS die on me
and kill all of my open emails.

Apparently you've considered the VNC path but weren't keen on the idea?

First, here are two good articles on doing what you want to do:

    Creating Animated Screenshots on Linux
        http://linuxgazette.net/102/washko.html
   Making Screen-Capture Movies
        http://www.linuxdevcenter.com/lpt/a/4602

 From looking around over a year ago, I began to realize the benefit of
using Flash SWF files to encoding MPEG video. If you only keyframe on a
massive screen update, you can keep MPEG files relatively small (encoding
partial blocks for cursor/mouse moves) - but I'm unaware of a tool that
really does this. MPEG video often has the problem with artifacts as well,
something you don't get with Flash files.

To that end, vnc2swf really impressed me.

        http://www.unixuser.org/~euske/vnc2swf/

Merely fire up a VNC server desktop to record, and vncviewer it to a point
where you wish to start.

     $ Xvnc :1 -query localhost &
     $ vncviewer -encodings tight localhost:1

then, when you're ready, run vnc2swf against that Xvnc desktop session:

    $ vnc2swf

You end up with something like:

    http://training.blenke.com/

The trick would be to record your mp3 audio first, and then run vnc2swf with
the -soundfile option.
To record the session, you would start playing the mp3 audio at the same
time you kick off vnc2swf, and then follow along clicking. If you want them
to run at the same time, and record from your microphone you can use a named
pipe:

    mkfifo pipe.mp3
    lame -r -s 44.1 -bitwidth 16 -b 160 /dev/dsp pipe.mp3 &
    vnc2swf -soundfile pipe.mp3

Alternatively, you can combine the audio seperately with swftools:

     http://www.quiss.org/swftools/

like so:

    wav2swf `swfdump -r video.swf` audio.wav -o audio.swf
    swfcombine -Tm video.swf audio.swf -o audio_plus_video.swf

Unfortunately vnc2swf uses VNC "raw" encoding, and Flash isn't nearly as
small as it should be.

If you're really interested in making an MPEG movie, you can still use
recorded VNC and transcode:

    http://www.sodan.org/~penny/vncrec/
    http://www.cs.ubc.ca/~bsd/vncrecording.html

On the first site, you will find a video on how to use vncrec and transcode
to make a video in the encoding of your chosing (sans audio, which you can
add post-production).

This really doesn't help with my grand vision, however. What I would really
like to do is put up a FREE Linux training site, allowing people to play
"tight" encoded VNC files muxed with some form of mp3 embedding (to keep
time synchronization).

The Java vncviewer, running as an application, can currently record "tight"
encoded sessions to a file locally on your machine. With a modicum of
development, it could potentially stream that via HTTP upload back to a site
with an associated audio stream. There are more ruminations of this on the
MulticastVNC page:

    http://www2.in.tum.de/~ziewer/multicastvnc/

Moreover, I would really love to expose UML images running VNC servers to
people to record their OWN training videos for the community. Put some form
of community moderated ranking engine on it, and let them regulate
themselves.

It would be wonderful to have an online chat with people asking questions,
and mentors volunteering their time to record a session with the student for
everyone to search for and view later. The TeleTeachingTool project touches
on this:

    http://teleteaching.uni-trier.de/ttt.en.html

Other projects to consider for recording VNC sessions include (from a google
search):

    1. rfbproxy by Tim Waugh: http://cyberelk.net/tim/rfbproxy/
    2. VNC Reflector: http://sf.net/projects/vnc-reflector/
    3. TightVNC Java viewer when run as an application (not an applet)

and to play them back:

    1. rfbproxy Tim Waugh: http://cyberelk.net/tim/rfbproxy/
    2. RFB Player (based on TightVNC Java viewer):
http://www.tightvnc.com/tmp/rfbplayer-1.0.0.zip

As for running VNC sessions, you don't need to run Xvnc if you don't want to
(though it does make sense for training videos, so you can hide things from
your user while recording). There are a number of ways to export your native
desktop via VNC:

    KDE Desktop Sharing (krfb server) in 3.1+:
        http://www.tjansen.de/krfb/
    xf4vnc
        http://xf4vnc.sourceforge.net/
    gemsvnc
       http://elilabs.com/~rj/gemsvnc/
    x0rfbserver

For Windows boxes (if you're forced to us them), I highly recommend
UltraVNC:

    http://ultravnc.sourceforge.net/

as for a viewer, if you do any fullscreen mode consider these patches:

    http://lars.werner.no/vnc/

If you're looking for something Windows based and commercial to produce your
captured session flash/movies, this guy recommends Camtasia (which is what
he used to create these):

    http://linux.rockinghamgateway.com/flash/
    http://www.techsmith.com/products/studio/default.asp

Hope this helps.

- Ian C. Blenke <icblenke@nks.net> (813)594-0054 Networked Knowledge Systems
- Director of Service Delivery

-----------------------------------------------------------------------
This list is provided as an unmoderated internet service by Networked
Knowledge Systems (NKS). Views and opinions expressed in messages posted
are those of the author and do not necessarily reflect the official policy
or position of NKS or any of its employees.

-----------------------------------------------------------------------
This list is provided as an unmoderated internet service by Networked
Knowledge Systems (NKS). Views and opinions expressed in messages
posted are those of the author and do not necessarily reflect the
official policy or position of NKS or any of its employees.



This archive was generated by hypermail 2.1.3 : Fri Aug 01 2014 - 13:23:42 EDT