Standard output...
Status: Alpha
Brought to you by:
enselic
Hello,
I like recodemydesktop really very much! It's really great application but I still missing one option. I would appreciate if it would be possible to send data to STDOUT instead of send it to the file. My imagination is something like this:
$ recordmydesktop -o - | vlc ...
This command would allow to stream the recording data straight away to an other powerful computer to encode the video or distribute it over multicast network.
I guess that it doesn't take so much time to implement it. I would really appreciate if recordmydesktop would have this option.
Regars,
Jiri
Logged In: YES
user_id=1585344
Originator: NO
The problem with this would be that I'm already using stdout
to separate the encoding process percentage from the rest of
the output(which goes to stderr). This percentage is needed for
the encoding progress indicator of the frontends.
Besides, the ogg file is normally written only after the capture
is finished. So this option would only make sense with on the fly
encoding enabled.
I'm not ruling it out, but can you elaborate more on the use cases
where this will be usefull ?
For example, what would be the benefit of reencoding with vlc,
while still capturing?
This is a very heavyweight operation, so why not leave it for later?
Regards,
John.-
Logged In: YES
user_id=498168
Originator: YES
You know, there is no application what would allow to stream out desktop presentation in "real time". Recordmydesktop is great candidate for this purpose. It would be enough if recordmydesktop would send data to STDOUT or on some special socket where the data would be available. Then other program could read this data and send it or recode it how it would be necessary.
INHO for long time presentation is not good idea to save the presentation on the disk (it could have few GB), encode it (it would take long time to encode it) and then send it over multicast network to the other users (there is big delay - it's not "real time").
I don't know how do you encode the data what do you grab them, but maybe it would be possible to encode it also by an other program (mencoder?). Than you could send the data on STDOUT (or socket) unencoded and let the data encode by the other program or better on an other machine (over the network). This would be great because the computer would not lost any power by encoding the data.
Maybe it would be big alteration into the code, but it would be first software in Linux what would have this feature. I would really very appreciate if you would think about that.
Best Regards,
Jiri
PS: Wouldn't be better to use a server-client communication between the recodemydesktop and its GUI? Then it wouldn't need any STDOUT messages during using the GUI and then you could simply disable printing any messages into the STDOUT during sending the data on STDOUT.
Logged In: YES
user_id=1585344
Originator: NO
I see your point about long time presentations and I agree that
it would be interesting.
But it might take several changes in the code to implement this.
The current format of the raw data that gets cached on the disk is
inappropriate for any other program. It misses information that
exist only in memory and it's also already semi-processed,
in order to minimize the size of the cache and the number of writes
on the disk.
Perhaps the easier way to do this would be to add a second way of
caching, only this one would not break down the data in order to
save space but would send them instead, directly on a fifo/socket
(or simply stdout).
As far as the server-client model is concerned, the current
scope of the program makes it unnecessary. And also, now that
I think of it, the stdout is only used when encoding the cache.
In the scenario where the data gets sent somewhere to be encoded
by another app, there is no encoding process so the stdout is free.
Anyway, I have some things that I want to try out before I
finish the current release cycle. After that I'm going to
look further into your suggestions and see what are the
possibilities.
I'm leaving this feature request open and I'll come back
when I have something more than assumptions.
Thank you for your constructive suggestions.
Regards,
John
I real-time send out my desktop using x11vnc
/djb
I've made small changes to the source code that makes the required feature possible:
1) rest-recinsert.c: change printf( -> fprintf(stderr,
2) rmd_parseargs.c: change fprintf(stdout -> fprintf(stderr
3) rmd_load_cache.c: change fprintf(stdout -> fprintf(stderr
4) rmd_init_encoder.c: reworked in order to admit "-" as an output file name, besides the original mode of operation
5) recordmydesktop.1: added the option of - for standard output
All of them are very simple, except for number 4). I attach that file. I'm not very proficient in making patches; that's why I can't easily make one.