Want to point out the working prototype of the Wiki@home extension. Presently it focuses on a system for transcoding uploaded media to free formats, but will also be used for "flattening sequences" and maybe other things in the future ;)
Its still rough around the edges ... it presently features: * Support for uploading a non-free media assets,
* putting those non free media assets into a jobs table and distributing the transcode job into $wgChunkDuration length encoding jobs. ( each pieces is uploaded then reassembled on the server. that way big transcoding jobs can be distributed to as many clients that are participating )
* It supports multiple derivatives for different resolutions based on the requested size. ** In the future I will add a hook for oggHanlder to use that as well .. since a big usability issue right now is users embedding HD or high res ogg videos into a small video space in an article ... and it naturally it performs slowly.
* It also features a JavaScript interface for clients to query for new jobs, get the job, download the asset, do transcode & upload it (all through an api module so people could build a client as a shell script if they wanted) ** In the future the interface will support preferences , basic statistics and more options like "turn on wiki@home every-time I visit wikipedia" or only get jobs while I am away from my computer.
* I try and handle derivatives consistently with the "file"/ media handling system. So right now your uploaded non-free format file will be linked to on the file detail page and via the api calls. We should probably limit client exposure to non-free formats. Obviously they have the files be on a public url to be transcoded, but the interfaces for embedding and the stream detail page should link to the free format version at all times.
* I tie transcoded chunks to user ids this makes it easier to disable bad participants. ** I need to add an interface to delete derivatives if someone flags it as so.
* it supports $wgJobTimeOut for re-assigning jobs that don't get done in $wgJobTimeOut time.
This was hacked together over the past few days so its by no means production ready ... but should get there soon ;) Feedback is welcome. Its in the svn at: /trunk/extensions/WikiAtHome/
peace, michael