I have just learned about RDP, and have successfully used remmina
on my Ubuntu machine to connect to a remote Windows PC.
Now, I would like to record that remote desktop session as video from the client (Ubuntu) side - however I have difficulty finding what I can use for that on Linux; I have found https://github.com/rdp/screen-capture-recorder-to-video-windows-free but that seems to be for Windows. The only thing relevant I could find is https://www.jedi.be/blog/2010/08/30/capturing-the-screen-of-your-virtual-machines-using-x-vnc-rdp-or-native/ from 2010, which recommends:
Recording a video:
The only way (I found) is to capture the RDP session as a video is to use ffmpeg as explained in the X-session, with rdesktop displayed in Xvfb session.
I cannot really tell if remmina
uses rdesktop
- but I've found https://github.com/muflone/remmina-plugin-rdesktop so it probably doesn't. In any case, I could probably open remmina
in an Xvfb session instead, and otherwise follow that approach - that is, use ffmpeg
to grab the virtual desktop/Xvfb session.
But, what I'm thinking is: remmina
(or a program it calls) must at a certain point "render" the pixels, that I'm seeing as the end result of the RDP connection - so ultimately, I'd like those original pixels saved as files; otherwise there is overhead of rendering those pixels on screen, and then having another tool (ffmpeg
) grab them back again, and compressing them as a video frame.
I'd expect the captures of "original pixels" to be uncompressed frames of pixels, that is, file sizes of a capture will be huge - but then, I'd have proper source material to encode as a video as I wish (in a separate ffmpeg
encoding pass).
So, is there an already existing tool (like remmina
, rdesktop
, xfreerdp
which I haven't tried yet) that would save the uncompressed/original pixel frames of an RDP remote desktop session - or possibly, encode those frames as video in real-time (so you don't have to use another tool to re-grab the pixels from screen in order to screen capture a video)?
I was also thinking - if none of these tools can capture frames of video from the RDP session, maybe there is some proxy that can be used? I know there is https://github.com/ribasushi/rfbproxy "a record/replay proxy for RFB (used by VNC)" which can act like that for VNC: you run rfbproxy
to connect to a VNC server; and with your VNC client you connect to the rfbproxy
instead; then rfbproxy
saves the "original" frames of the VNC remote desktop session in its own format. Is there something like that for RDP on Linux?
ffmpeg -f x11grab ...
in a script that encodes the video on-the-fly to a file in/dev/shm/
. It should work withremmina
as well.