Matterhorn Developer Wiki

You may also wish to visit

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

Ideas

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

Matterhorn provides no method for cropping; trimming, intro/outro videos, and overlays. With the use of other open source media frameworks on the back end (e.g. ffmpeg, gstreamer), a services oriented framework, and rich internet applications on the front end (e.g. html 5), 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 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.  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.

Matterhorn Market Place

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

The first modules for Matterhorn have emerged that will not be part of a default Matterhorn distribution, because it may replicate already existing functions or depends on commercial services. But despite these restrictions these modules may be usefull to quite a lot Matterhorn administrators. Additional to modules which offer new functionality, workflow definitions and encoding settings could be provided by a market place. This market place should not be used financial transactions but simply to give an overview over the existing enhancements and provide an easy way to install these new features. In the distribution part this market place could be integreated into Matterhorn's admin UI and if an enhancement is selected it could already be deployed to Matterhorn (in many cases even without a restart). On the other side we need a website where people can upload the modules workflow definitions, etc. that they want to offer.

Web-based Remote Capture

Difficulty: Easy - Medium
Knowledge Requirements: Adobe Flash/Flex, Javascript, HTML
Potential Mentors: rrolf, cab938

Big Blue Button (BBB) already integrates with Matterhorn for the recording of web-meetings. For many scenarios it would be great to have an even simpler version of this, where only the lecturer and his presentation will be recorded. This should be done without any additional hardware needed (except a mic and a webcam), and it would be great if not even software would need to be installed on the lecturers machine. So with some modifications to the BBB setup or a new module for Red5 such a remote capture system could be created. Alternatives for this project would be to capture via VNC or VM screen capture for single machine deployment.

Draw Markup on Video

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

The Matterhorn player is currently enhanced with an comment feature. This feature is currently text based. It would be a very valuable improvement to place an HTML5 canvas over the video(s) that allows the user to draw annotations on the video.

Securing Streams from external Servers

Difficulty: Medium
Knowledge Requirements: Java, Javascript, Apache, Lighttpd, Red5, (Wowza), (Adobe Media Server)
Potential Mentors: rrolf

Mattherhorn has gained authn/authz abilities in the last releases. Unfortunately the streams from the Streaming Servers or from external Web Servers are still unprotected and could be watched by anyone. Currently Red5 and Lighttpd are the recommended servers to dirstribute the streams.

Social Network Integration

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

Currently Matterhorn can be integrated into typical university enterprise systems with LTI, LDAP, CAS and other standards. For certain scenarios (small universities, external companies, etc.) it may be interesting to do their usermanagment with a social network instead. So it would be great to integrate Matterhorn with the facebook, google+ and OpenSocial APIs.

Segment Topic Detection

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

Currently Matterhorn can be integrated into typical university enterprise systems with LTI, LDAP, CAS and other standards. For certain scenarios (small universities, external companies, etc.) it may be interesting to do their usermanagment with a social network instead. So it would be great to integrate Matterhorn with the facebook, google+ and OpenSocial APIs.

Variable Speed Playback

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

Currently Matterhorn can be integrated into typical university enterprise systems with LTI, LDAP, CAS and other standards. For certain scenarios (small universities, external companies, etc.) it may be interesting to do their usermanagment with a social network instead. So it would be great to integrate Matterhorn with the facebook, google+ and OpenSocial APIs.

Capture Agent User Interface

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

Matterhorn capture agents currently have very minimal controls, but lots of the back end for richer UIs is already finished.  We need someone to finish off the UI, extend it to handle new features, and build an extensible, futureproof tool which can be used by both administrators and instructors in the classroom.  The UI needs to be able to start and stop the recording, change the configuration of the agent, list the files on the agent, get the current state of the agent, and show the confidence monitoring information from the agent.  The ideal candidate for this project will be comfortable with HTML, Javascript (jquery), XML, JSON, and CSS and willing to learn some Java and OSGi.


  • No labels