You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@guacamole.apache.org by zspmaomao <46...@qq.com> on 2020/04/26 09:24:54 UTC

Guacamole's Session Recording

I followed the  Documentation
<https://guacamole.apache.org/doc/gug/configuring-guacamole.html>   to
record a vnc session. it produce a file for me named "recording" without any
format. I know I can use guacenc to convert it to a regular video but the
problem is it's size!  3.3G! But the size of the data received by a remote
desktop viewer browser is much smaller than the 3.3G generated by the
on-screen recording. Is there any way to make the recording file
smaller?Just like vnc.c to lost some changes from vnc server while
(client->state == GUAC_CLIENT_RUNNING) {        int wait_result =
guac_vnc_wait_for_messages(rfb_client,               
GUAC_VNC_FRAME_START_TIMEOUT);        if (wait_result > 0) {            int
processing_lag = guac_client_get_processing_lag(client);           
guac_timestamp frame_start = guac_timestamp_current();            do {               
guac_timestamp frame_end;                int frame_remaining;                
frame_end = guac_timestamp_current();                frame_remaining =
frame_start + GUAC_VNC_FRAME_DURATION  - frame_end;                                               
int time_elapsed = frame_end - last_frame_end;                int
required_wait = processing_lag - time_elapsed;                if
(required_wait > GUAC_VNC_FRAME_TIMEOUT)                    wait_result =
guac_vnc_wait_for_messages(rfb_client,                           
required_wait*1000);                else if (frame_remaining > 0)                   
wait_result = guac_vnc_wait_for_messages(rfb_client,                           
GUAC_VNC_FRAME_TIMEOUT*1000);                else                    break;           
} while (wait_result > 0);        }    }Any suggestion will be useful even
writing my own application to do that or use an available application (just
give me a hint please:) ) 



--
Sent from: http://apache-guacamole-general-user-mailing-list.2363388.n4.nabble.com/

Re: Guacamole's Session Recording

Posted by Nick Couchman <vn...@apache.org>.
On Sun, Apr 26, 2020 at 5:25 AM zspmaomao <46...@qq.com> wrote:

> I followed the Documentation
> <https://guacamole.apache.org/doc/gug/configuring-guacamole.html> to
> record a vnc session. it produce a file for me named "recording" without
> any format. I know I can use guacenc to convert it to a regular video but
> the problem is it's size! 3.3G! But the size of the data received by a
> remote desktop viewer browser is much smaller than the 3.3G generated by
> the on-screen recording. Is there any way to make the recording file
> smaller?


Well, that probably depends a bit on the length of the session you are
recording, but that isn't too terribly surprising.  The recording file will
contain essentially all of the raw data, and the level of compression of
the data (particularly the image data) will vary based on the source and
what determination guacd makes about the link characteristics and what
level of compression (or lack thereof) makes for a better experience.

To make the recording file smaller, you can shorten the session, or you can
compress the file using gzip or bzip2 or lz, etc.  However, I'm guessing
you want to be able to do something with the file and not just store it, so
compressing it may not work for you.


> Just like vnc.c to lost some changes from vnc server while (client->state
> == GUAC_CLIENT_RUNNING) { int wait_result =
> guac_vnc_wait_for_messages(rfb_client, GUAC_VNC_FRAME_START_TIMEOUT); if
> (wait_result > 0) { int processing_lag =
> guac_client_get_processing_lag(client); guac_timestamp frame_start =
> guac_timestamp_current(); do { guac_timestamp frame_end; int
> frame_remaining; frame_end = guac_timestamp_current(); frame_remaining =
> frame_start + GUAC_VNC_FRAME_DURATION - frame_end; int time_elapsed =
> frame_end - last_frame_end; int required_wait = processing_lag -
> time_elapsed; if (required_wait > GUAC_VNC_FRAME_TIMEOUT) wait_result =
> guac_vnc_wait_for_messages(rfb_client, required_wait*1000); else if
> (frame_remaining > 0) wait_result = guac_vnc_wait_for_messages(rfb_client,
> GUAC_VNC_FRAME_TIMEOUT*1000); else break; } while (wait_result > 0); } }
> Any suggestion will be useful even writing my own application to do that or
> use an available application (just give me a hint please:) )


 I have no idea what you're asking, here - you haven't said what you're
trying to do with these recordings, and I've no idea what the code you
posted above - which got mangled by the mailing list - represents??
Presumably it's part of the Guacamole code, since I see the guac_ function
calls, but you haven't provided enough context.

Perhaps you could start by giving everyone a summary of what you're trying
to do - you're trying to record VNC sessions, and do _______ (what?) with
them?  And then tell us why the size of the files is problematic for what
you're trying to do - what error are you running into, or resource
constraint, or challenge?  And then tell us what you've tried to do to
overcome that, whether or not it has worked.

-Nick