April 2024 - This site, and Kamaelia are being updated. There is significant work needed, and PRs are welcome.

Jan 2024 - This site, and Kamaelia are being updated. There is significant work needed, and PRs are welcome.

Kamaelia Macro

Tools for timeshifting

Timeshift Everything, Miss Nothing - Mashup your PVR with Kamaelia from kamaelian

For more context on timeshifting in Kamaelia, please see this page.

What is it?

It records and transcodes what is broadcast over DTT for future viewing. It is essentially a form of timeshifting. It is currently at a prototype stage, and as such the contents of this page is subject to change. Programs are captured, transcoded and then made avallable for viewing in a variety of formats. The two primary formats are suitable for handheld TV's and relatively small living room TVs.

The resulting data was forwarded to a simple front end for demonstration purposes.

High Level Architecture

The high level architecture is as follows:

This might seem too high level. However, due to Kamaelia's nature, this has a direct mapping to the underlying code.

Channel Transcoding

A channel transcoder takes the data it recieves and splits it into two.

Diagrammatically, this looks like this: (only one actual transcoder shown for simplicity)

The interesting point is what happens when there's a programme event change. In this circumstance, new transcoders are created, and the audio visual data is sent to them. The original transcoders are sent shutdown messages telling them to shutdown after completing their transcoding. This then triggers the copying of the transcoded data & captured metadata to a location where the (currently simple) frontend can access it

Diagrammatically, the replumbing looks like this:

Specifically, files are created of the form:

Primitive Front End

The existing front end is a simple prototype that shows how a standard single channel can be made to look like a RSS feed like any other "web" channel. This is - probably unsurprisingly - no longer visible for lots of reasons!

A snapshot of the current view:


The code & system described here is not the final version. The upcoming release of Kamaelia & Axon (0.4.0 and 1.5.0 respectively) will include the simple version of Macro as an example, in examples 15 specifically. Until then in order to use this you'll want to grab a bundle, follow the instructions for getting started, and then get a recent CVS snapshot. Please contact us for help in getting started. Once again though, bear in mind that these tools have been created for legal timeshifting purposes only.

If you're interested in collaborating on building this and taking this technology forward (or perhaps even building into a domestic PVR, or a personal/homebrew PVR) we'd be very interested in hearing from you!

End Notes

Kamaelia tools for timeshifting are relatively nascent, but as can be seen can be used for a variety of interesting uses already. As it should be clear, extending these systems to do more would be relatively simple. For example rebroadcasting the transcoded data using multicast is a relatively simple extension.

Regarding Kamaelia, this work has been useful so far for driving a large amount of optimisation work for the core system - Axon. This has had a number of knockon effects, such as making collaborative whiteboarding a realistically useful tool.

Michael, May 2006