Opencast Developer Wiki

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 9 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.

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