Audio/Video Capture repository plugin

Revision as of 08:01, 14 May 2012 by Ankit Gupta (talk | contribs) (Implementation)

Jump to: navigation, search
Audio/Video Capture repository plugin
Project state Community Bonding
Tracker issue CONTRIB-3631
Assignee Ankit Gupta

Moodle 2.3

GSOC '12


Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.


Moodle 2.3 required

Project Details


The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.


I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)

The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows :

For students using Moodle : Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.

For teachers using Moodle : Teacher can view all the messages submitted and choose to lock/change or assign score to a given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures.

As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. The video recording applet would allow recording videos in mp4 format (H.264 video and AAC audio) on the web page and upload it on the web server via HTTP. I would be using the Java Media Framework (JMF) to capture the audio and video stream.

Schedule of Deliverables

Pre-phase (10th May - 21st May) : Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins. Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.

First-phase (21st May - 9th July) Deliverables :

21st May - 28th May Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done.

29th May - 4th June Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.

5th June - 19th June Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control.

20th June - 9th July Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.

Second-phase (11th July - 1st August) Deliverables :

11th July - 18th July Entire back-end + front-end for the module should be complete.

19th July - 25th July Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.

26th July - 1st August Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.

Post-phase (12th August - 20th August) : This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.

Relevant Links

Ideas List


GSoC Proposal