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. - Re-encode ogv using high-compression encoder settings, to get a smaller file size suitable for distributing over the web. 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. 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). Some ogg codecs that could be potentially be used: http://wiki.xiph.org/Kate http://wiki.xiph.org/OggMNG http://wiki.xiph.org/OggSpots Some examples of some proprietary screen codecs: http://wiki.multimedia.cx/index.php?title=VMware_Video http://wiki.multimedia.cx/index.php?title=Flash_screen_video Cheers, Greg. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/ogg-dev/attachments/20100326/19d34181/attachment.htm
> 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/OggSpotsIn 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.
ogg.k.ogg.k at googlemail.com wrote:> 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.Dirac does. I don't know if it's currently fast enough to encode in real time at modern desktop resolutions, but then libtheora isn't really, either. I'm not sure which would be easier to adapt to that purpose.
I would suggest installing some little program that makes on-screen displays of the ATK events. For example similar to growl on the Mac - I'm pretty sure there are applications that do that. Then, you can use any screen recorder to record the screen with these little displays. You can use Istanbul to directly encode into Theora: http://live.gnome.org/Istanbul . That would be the easiest way to save this problem. But if you really wanted to implement support for the ATK events, I would suggest adding it to Istanbul. Have a chat with their developers to see if that is a feature they would be keen on. Then store the ATK events in a Kate track of the Ogg file. Cheers, Silvia. On Fri, Mar 26, 2010 at 9:27 AM, Greg Lowe <greg at vis.net.nz> wrote:> 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. > ??- Re-encode ogv using high-compression encoder settings, to get a smaller > file size suitable for distributing over the web. > 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. > 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). > Some ogg codecs that could be potentially be used: > ?? ? ?http://wiki.xiph.org/Kate > ?? ? ?http://wiki.xiph.org/OggMNG > ?? ? ?http://wiki.xiph.org/OggSpots > Some examples of some?proprietary?screen codecs: > ?? ? ?http://wiki.multimedia.cx/index.php?title=VMware_Video > ?? ? ?http://wiki.multimedia.cx/index.php?title=Flash_screen_video > Cheers, > Greg. > _______________________________________________ > ogg-dev mailing list > ogg-dev at xiph.org > http://lists.xiph.org/mailman/listinfo/ogg-dev > >