This is archived, historical information, likely to be outdated. Please see for current information.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Google Summer of Code Ideas Page

Ideas a plenty!  There's lots to do and this is a great place to flesh out some of our community proposed ideas and parking lot features.  The goal is to attract students with fun, tractable, and useful projects.  Please edit as you see fit, and feel free to volunteer up as a mentor.  Remember, a short term coder can turn into a long time contributor over night!

Students; if you're new to Opencast check out what we're all about on our announcement video or our latest promo video .


Web-based video editor

Difficulty: Easy - Medium
Knowledge Requirements: Various, might include: Flex/Flash, Ajax/HTML, Java, REST-based web services, FFMPEG usage, Gstreamer and Java/OSGI depending on student background knowledge
Potential Mentors: cab938, mket

Social video sites are everywhere, but 5 minute snipits of lectures aren't really as effective as dropping in the whole thing.  But wouldn't it be nice if an instructor or technician could clean them up a bit by cropping; trimming, adding some intro, and maybe some nice overlays?  Not only would it make videos look more professional, but it would might increase usability too.
We can do this using final cut, or adobe premier, but this project is all about building a web-based solution.  With powerful media tools on the back end (e.g. ffmpeg, gstreamer), a clear services oriented framework, and rich internet applications on the front end (e.g. adobe flex/flash, html 5), it's well within reach.
In consultation with mentors, the student involved in this project will hive off the front end interactive tools, the back end services and composition logic, or both, to create a stunning and useful basic video editor.  Beyond integrating it into opencast, it can be made available for other open source projects as a stand alone package.

Processing video for single-stream delivery

Difficulty: Medium
Knowledge Requirements: FFMPEG, Java, image manipulation libraries, other options available (Python/PIL, Gstreamer), mobile development experience a bonus
Potential Mentors: cab938

Lectures are often made up of multiple streams (e.g. a talking head of the instructor and the powerpoints).  By using cue points, we can transform one stream into another (e.g. via a fade technique) to provide a single stream delivery of multiple streams.  Selecting cue points is a key component of this work, though previous work done on the REPLAY project (now part of Matterhorn) and the Recollect project have demonstrated the tractability of doing this automatically.  Single stream delivery of multiple lecture artifacts is particularly relevant for personal media players and smartphones (e.g. iPhone), where screen real estate is at a premium.  The ideal candidate for this will feel comfortable working with or learning image manipulation toolkits (e.g. PIL for python, OpenCV, or others), and open to not only creating routines to merge video but services to expose these routines to the workflow engine in Matterhorn.

Enriching recordings with additional images

Difficulty: Medium
Knowledge Requirements: Javascript, HTML, Java, XML
Potential Mentors: rrolf

Although Matterhhorn supports the recording of multiple video-streams this is not always possible in the production. So it would be great to be able to enrich the recording afterwards with images that provide additional information. These images may be uploaded one after the other or would be taken from a presentation (PowerPoint or PDF). There are several points in the Matterhorn workflows where such a function could be added. One would be to create an additional hold-state during the processing of the mediapackage where the user can upload the material and sync it with the video. Among the technical implementation one of the challenges here is to create an interface that makes the autoring efficent.

Visual Workflow Definition Editor

Difficulty: Medium - Hard
Knowledge Requirements: Javascript, HTML, Java, XML
Potential Mentors: rrolf

Matterhorn uses workflow definitions that concatinate several small workflows to adopt the system to the needs of the institution that uses Matterhorn. Encoding, analysis, distribution workflows can be added or removed from these workflow definitions just like it is needed for a current purpose. Currently these workflow definitions are created in XML files, but it would be great if this could be done by less experienced administrators from within the admin web-interface. The main challenge here is to create an implementation that knows what parameters a workflow has, what type of result this workflow creates and how this it can connect these workflows to each other. The implementation must be generic, as developers will create new workflows frequently and these new workflows should be deployable and itegrateable to Matterhorn without to much efford for the admin.

Title: Gstreamer-based video composition service
Difficulty: Hard
Knowledge Requirements: C, Java, gstreamer framework
Potential Mentors:

Title: Blob tracking
Difficulty: Medium - Hard
Knowledge Requirements: OpenCV
Potential Mentors:

  • No labels