[ogg-dev] Screencasting using Ogg

ogg.k.ogg.k at googlemail.com ogg.k.ogg.k at googlemail.com
Sat Mar 27 14:29:37 PDT 2010

> Here's what I'd like to be able to do...
> Record my screen to an ogv:
>   - Record screen and encode in real-time using a light-weight encoder
> settings (in order to keep CPU usage low while recording).
>   - Store ATK events (i.e. key presses, and menu clicks) as they occur as
> meta-data within the ogg.
> After the recording is finished:
>   - Post-process ATK meta-data to add overlays for highlighting mouse
> clicks, and callouts containing text such as "File -> Open". The overlays
> should be stored within the ogg.

Would this post processing be automatic ? If so, then I don't see why it
would be a post processing step, rather than saved in the ogg in the first
place. If it would be a second pass user-authored step, then fine.

>   - Re-encode ogv using high-compression encoder settings, to get a smaller
> file size suitable for distributing over the web.

Re-encoding a Theora video will, for a given output bitrate, be worse than if
you had encoded it at that bitrate in the first place. Theora does not have a
lossless mode, which would allow you to save first as lossless, then reencode
without losing fidelity.

> I'd like to encode the screen captures using a lossless compression format,
> such as zlib or PNG, to avoid compression artifacts around hard edges.

And this makes me think I might have misunderstood: what screen captures
are you talking about ? You are saving a Theora video of a screen - these will
not be compressable with a general purpose algorithm such as zlib. Are you
intending to also capture particular screens, and store them in the ogg stream
alongside the Theora video ?

> Would it be possible do do this using ogg and existing codecs?
> (In case I'm being confusing, I am aware that there's no existing software
> that achieves this process, I'm considering writing that myself. My question
> is specifically whether the ogg container format and existing ogg codecs are
> able to achieve this).

If you write the extra code to write/read that custom data, and write overlays
from them, then yes, sure, it's possible.

> Some ogg codecs that could be potentially be used:
>       http://wiki.xiph.org/Kate
>       http://wiki.xiph.org/OggMNG
>       http://wiki.xiph.org/OggSpots

In the case of Kate, you can store text and images, with
position/sizes, so you should be able to do all you need there. The
first 'raw' pass could write the metadata in your format of choice
(eg, XML) as the event's text, and the post processing would generate
more complex events from it.
I'm not sure whether the others can store text, I think OggMNG can,
but I'm not 100 certain.

More information about the ogg-dev mailing list