I am typically using recordmydesktop
to record some application interaction; however, on my system, recordmydesktop
always shows the same mouse pointer/cursor (the arrow) - regardless if, in reality, it changed to (say) a corner arrow when resizing a window. In addition, I'd need something to indicate on the video when a mouse (either button) is pressed, when the button is held down, and when the button is released - which desktops on their own usually don't indicate (unless a given application handles those events).
So, this is what I thought - maybe I can run recordmydesktop
with the option --no-cursor
"Disable drawing of the cursor."; and on the other hand, record raw mouse event data (positition and clicks). I found Record every keystroke and store in a file and How to get mouse click position?, and so I learned about Xnee (manual), which can record all mouse data in a plain text file.
So, I was wondering - short of writing my own parser, is there a program that
- could use a
cnee
(or its own) format recording of mouse data; then - accept something like a transparent animated .gif for "mouse left/right press/release" events, as well as transparent .png for "left/right down/up" states
- accept a frames per second rate setting, and pixel width and height of output video
- render an image sequence at the requested rate and size, with the specified .gifs/.pngs at the mouse position - as per the recorder mouse data - as the only content of a frame image (which is otherwise transparent)?
Then, I could run recordmydesktop --no-cursor
and cnee --record --mouse -o /tmp/xnee.xns
in parallel; after I'm done I'd render a separate transparent "mask" video of the custom mouse pointer motion only; and finally overlay the mouse cursor "mask" with the original video.
Of course, if there is already a program that does this, I'd love to know about it - since even if there is a program to do as I described above, I believe it would be still difficult if one is capturing a desktop area larger than the video size, and wants to use something like recordmydesktop --follow-mouse
"When this option is enabled, the capture area follows the mouse cursor."