Recording the screen without the pointer in the picture
The pointer is the part of a screen recording that gives away how it was made. It twitches between positions, it hangs in the middle of the picture while you talk for 40 seconds about something else, and it is whatever shape your operating system felt like drawing at the time.
In Cilevi the recorded frames have no pointer in them. The recorder's cursor button ships off, the take writes bakedCursor 0 into its header, and the pointer you see while editing is drawn on top afterwards from a list of positions and clicks saved beside the video. Everything below is a consequence of that one decision.
A pointer painted into the frames cannot be changed afterwards
This is worth being blunt about, because we got it wrong first.
The recorder used to paint the real Windows pointer into every frame and write "bakedCursor":1 beside it. The studio reads that key and refuses to draw its own pointer over a baked one, which is right: 2 pointers on screen is worse than the wrong one. The two settings were never wired to each other, and the recorder's default won. So the drawn pointer was switched off on every real take anybody made, and all the work below could only ever be seen on a hand edited file.
A baked pointer is a pixel like any other pixel in that frame. It cannot fade. It cannot move to where the cut needs it to be. It cannot become a different shape, and the zoom that follows the mouse has nothing to follow, because by then the mouse is scenery.
The shapes were measured off video, row by row
The look is the macOS one: black body, white rim, a faint soft shadow. It was not drawn from memory. Frames were taken from a reference video and read row by row, with any luminance under 70 counted as body, and the silhouettes traced from that.
In units where the arrow is 25 tall, the arrow has a vertical left edge, a 45 degree leading edge, a flat wing underside at y 14, and a slender tail 3 units wide cut square. The I-beam is 29 units tall, taller than the arrow, as it is on a Mac. The white rim is 1.1 units outside the black, which comes to about 2.5 px on a 50 px arrow. The shadow runs at opacity 0.18, offset 0.6 right and 1.4 down.
The rim and the shadow in the reference video look heavier than they measure, because the video is upscaled and compressed. We trusted the row counts rather than our eyes, which is the only reason the numbers above are numbers at all.
What we took out
The neon gradient pointer, the glow dot and the mono style are gone. The yellow highlight halo and the cyan click ripples still exist under EFFECTS on the Cursor tab and are off by default. The reason for all of it is the same: the reference video has none of them, and between them they accounted for most of the colour on screen.
A project saved before the change keeps whatever it says. New ones read the missing keys as off.
The pointer fades when you park it
Leave the mouse alone and it fades out. Move it and it comes back. The controls are on the Cursor tab and it is off by default, so a project made before it renders exactly as it did.
The part that took the work was deciding what counts as leaving it alone. A click counts as activity even when nothing moved, and so does a change of shape, which is the case a test that only watches position gets wrong: you are hovering over a button, you click it, and the pointer has no business fading because you held still. Movement itself needs a threshold of 1 recording pixel per step at 240 Hz. Without that, the spring that carries the pointer to a stop is still settling by fractions of a pixel long after you stopped touching the mouse, and the fade never fires at all.
The jump that appears the moment you cut a pause
2 clips side by side on the timeline were not side by side in the recording. Cut 3 seconds of silence out of the middle and the pointer is in one place on the last frame before the cut and somewhere else entirely on the first frame after it. It teleports. The owner of this project found it the day the silence chips shipped and asked what the setting was called, assuming it existed.
It does now, at the foot of MOVEMENT on the Cursor tab, called Across a cut, and it ships on for every project including old ones.
What it does is slide the drawn position while leaving the real motion alone. The gap between the 2 positions is measured once at the join, and over a window of 0.25 s the pointer is drawn at the outgoing position plus a shrinking share of that gap, on a smoothstep curve rather than an ease out, so it leaves the cut gently instead of at full speed and arrives exactly where the recording really has it. Blending the source time instead would have been easier and would have thrown away the incoming clip's own movement.
Not every join gets a slide, and 2 measured thresholds decide it. Over 0.30 of the recording's diagonal, about 661 px at 1080p, the pointer fades out and back in instead: a smoothstep's fastest instant is 1.5 times the gap over the window, so at that threshold the slide is already peaking near 4000 recording pixels a second, which is a quick flick of a real mouse, and anything past it reads as a swipe somebody watched being made that nobody made. Under 0.004 of the diagonal, about 9 px at 1080p and 18 at 4K, nothing happens at all. Most cuts land while the pointer is still, and that case has to cost nothing.
Joins between 2 different recordings always fade, however small the gap, because there is no continuity there to preserve and a slide would be a lie about where the pointer was.
Slide, Fade and Jump are also available by hand if you disagree with Smart on a particular join. Jump is the raw cut, which is what every other recorder gives you.
6 shapes are guesses
Resize, size all, wait, app starting, cross and no never appear in the reference video, so they were drawn in the same paint by eye. They fit, and they are not measured. The wait pointer in particular is still the broken ring rather than anything macOS would show, and the click ripple, if you switch it on, is still cyan against a look that has no other colour in it.
If your recording leans on any of those shapes, look at the export before you trust it.
If you turn the recorder's cursor button back on
You get the real Windows pointer baked into the frames, and the studio stands down and draws nothing. That is the correct behaviour and it is also a dead end: no fade, no slide, no shape of your own, and the automatic zoom loses the thing it follows.
There is one case where it is the right answer. If what matters is showing exactly what was on screen, pixel for pixel, including the pointer your machine really drew, bake it in. Recording a bug report, for instance.
Installs from before this change carry the old setting, so the first launch after updating shows a small window explaining that the pointer is no longer recorded, with a button to put it back. It is shown once and never again.
Look at your last recording's first 10 seconds
Open a take you already have, go to the Cursor tab, and turn the idle fade on before anything else. Then find a cut you made by hand and watch the pointer cross it at quarter speed. If it snaps rather than slides, the gap was over the threshold and it faded on purpose.
The rest of what the studio does with a clean frame, including the background and the zoom that follows the mouse, started in why we built Cilevi. If you want a shape we guessed to be measured properly, the feedback board is where that request goes.
Comments 0
Nobody has said anything yet.