I want to record efficiently (space-wise) a screen area which has certain charateristics, akin to a video presentation of a software :

  • it is a window on my computer where a program runs. Not a video, but instead a pixel-perfect window of a program.
  • graphics-wise: the window I want to record: only changes every few seconds (or half of seconds), and each time it is only a very localised change that happens (In other words: if you took a screenshot at time N, and a screenshot after one the next change, only a localised area (say, a 16x16pixels area at a specific X/Y location inside the window) have changed). For an exemple of changes: imagine you want to record someone adding very simple (and small, under 30x30?) blots of color on a paint program, in a precise location, with varying colors and locations over time. For exemple after 2 seconds they deposit a 13-wide blue circle there, then after 1/2 second a 15x15 grey square at another location, then after 12 seconds a small sprite of a face (smaller than 30x30px) at a 3rd location, etc.
  • sound-wise: a presenter talks and thus I need to record that audio informations as well (so that when reviewing the recording: we see the change occur and the audio describes what just happened)

The goal would be to be able to record the sound (audio presentation) as mp3 (or anything suitable and small) + the window change itself in some lossless video format, in a very efficient way.

ie some video protocol able to find out precisely which small area of the image changes, and describe it in an efficient (albeit lossless) way into the recording.

I believe that there should be a very space-efficient recording if some dedicate solution analyses the changes on the window and discovers which very small area has changed and how it changed: It "just" needs to encode into the final video small informations every few seconds: "the first [full image] is this" "then at [timestamp] this 20x20pixel thing is the new info recovering that x/y location", "then at [timestamp2, maybe 4s later] this 12x12 pixel thing replaces the area at x2/y2 location", etc.

I tried several types of "usual" encodings (mp4, avi264, etc) but those are usually aimed at recording live things where between each frame everything can subtly change, and thus are both a bit "noisy" (the little section that changes often looks like a small jpg) and probably not very efficient if they don't "realize" that at each change only some very small, very localised section of the full image changed and that change didn't modify any other pixels around that small section.

  • fwiw, the window is a java application window – Olivier Dulac Apr 15 at 18:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.