Audio/Video repository plugin for Moodle 2.3

Audio/Video repository plugin for Moodle 2.3

by Ankit Gupta -
Number of replies: 27

Hi everyone,

I would be developing the Audio/Video repository plugin for Moodle as part of the GSoC programme. I have created the fork of the template by Dongsheng and pushed some initial code on this https://github.com/ankitdbst/moodle-repository_mediacapture/. I would be initially working on the audio recorder plugin and using https://github.com/sammarshallou/ouaudioapplets or the Nanogong applet (which has previously been used) for the audio recorder. 

The doc for the project is http://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin

The Tracker for the same is http://tracker.moodle.org/browse/CONTRIB-3631

I would be happy to receive feedback & suggestions for the development of this plugin. smile

Average of ratings: Useful (2)
In reply to Ankit Gupta

Re: Audio/Video repository plugin for Moodle 2.3

by Matt Bury -
Picture of Plugin developers

Hi Ankit,

Great to hear you're working on that smile

Users of Moodle for Second/Foreign language acquisition (SLA) tend to use the NanoGong assignment type (Assignment module) so that learners can record monologues and dialogues and submit them for analysis, feedback and/or grading.

It may be some time before Moodle 2.x becomes suitable for SLA because of the heavy use of multimedia modules, especially for audio. Anything that can bring 2.x up to speed with the plugins available for 1.9 would be very welcome! smile

All the best!

In reply to Matt Bury

Re: Audio/Video repository plugin for Moodle 2.3

by Ankit Gupta -

Thank you. I am initially examining the workings of the nanogong applet. And looking at some generic repo-plugin workings that doesn't rely on a particular technology.

In reply to Ankit Gupta

Re: Audio/Video repository plugin for Moodle 2.3

by Paul Nicholls -

Hi,

Last week, I put the finishing touches (with some help from Justin Hunt) on an audio recording repository plugin which uses the Flash-based recording widget which I built as part of an assignment submodule.  I'd been holding off announcing it until the entry in the Moodle plugins database was accepted - it's still waiting for approval - but in the mean time, it can be found on Github: https://github.com/MaxThrax/moodle-repository_recordaudio.  There's still potential to tidy things up a bit more (at the moment, you just get a bare recorder - it might be nice to add some brief instructions, and possibly extend it to have the license dropdown etc).

I notice that the doc page you linked mentions Nanogong's editor integration/plugin, but I'm not convinced that anything extra is required - given that the standard editor has a button to insert/embed media which already allows picking files from repositories, there doesn't seem to be much point in adding another button which does the same thing.

Video will be interesting - I see you have plans to build a Java-based capture mechanism, but I wonder if it might be feasible to extend my audio recorder (or at least use the concepts behind it) to do it using Flash instead?  I haven't investigated video capture at all, but it's certainly possible to do local video capture from a webcam, so it'd be down to which codecs are available and how easy it is to get the audio and video (in suitable formats) into a relevant container file format.  The source for my recording widget is available in the Git repo, so feel free to take a look at how it works - and if you have any questions about it, feel free to ask (sending me a private message is probably the most effective way to reach me).

-Paul

In reply to Paul Nicholls

Re: Audio/Video repository plugin for Moodle 2.3

by Ankit Gupta -

Hi Paul,

I had discussed (with my mentor Rajesh Taneja ) about making this repo-plugin generic in nature which would not rely on a single technology as each one had it's implications. I am starting with the java applet to record audio and would possibly try to make it independent of the technology used, which would require me to use even a flash based (like yours) or even an HTML5 based alternative.

You have implemented this as a filepicker instance right ? I thought to make a TinyMCE plugin which would enable recording directly but what you say sounds reasonable too.

I would be requiring your help in the design and development of this as you have already implemented it using Flash. I would be testing your plugin by installing Moodle 2.0 (currently I have 2.3)

In reply to Ankit Gupta

Re: Audio/Video repository plugin for Moodle 2.3

by Paul Nicholls -

Hi Ankit,

As per my post (below) in response to Matt's questions, Flash adoption is closer to universal than Java (according to all the stats I've seen), so it might be wiser to start with Flash and treat Java as more of a last resort.  In the longer term, once browsers have support for HTML5 audio capture, I'd suggest the order of precedence ought to be HTML5 -> Flash -> Java (use HTML5 where available, falling back to Flash where available, falling back to Java as a last resort).

As far as the repository plugin itself goes, you're certainly welcome to look at how I've implemented it; feel free to ask me any questions you may have, either here or via private messsage.

-Paul

In reply to Paul Nicholls

Re: Audio/Video repository plugin for Moodle 2.3

by Rajesh Taneja -

Awesome Paul,

I think the point here is which technology to go with. It might be nice to have a plugin, which can open a audio/video recorder independent of whether user system supports flash/java/html5.

It might be nice to look at something generic which can support different technologies and provide good interface which can detect user system capabilities and show appropriate recorder.

In reply to Paul Nicholls

Re: Audio/Video repository plugin for Moodle 2.3

by Matt Bury -
Picture of Plugin developers

Hi Paul,

I've downloaded your MaxThrax package. I have't had a chance to look at the code yet but it looks like you're recording a WAV file into Flash's memory, encoding it to MP3 and then uploading it via POST (rough guess from looking at the .as class names). Is that correct?

If so, I've been experimenting with something similar but I ran into problems with the WAV to MP3 encode. Since Flash doesn't do multi-threading the whole app freezes while the encoding takes place. The library I was using took an unreasonably long time and just didn't seem practical. Is the library you're using fast?

Also, I know of another way to save the file to the server that gets around POST file size limits on the server - AMFPHP. It can do the file write, gradebook entry and anything else you want by sending it all in one object to a PHP service script.

Finally, I think it's worth mentioning at this point that one of the reasons the NanoGong client-side applet is so popular is that it only requires JRE on the client and PHP on the server which is pretty close to universally compatible.

Looking forward to checking out your code tomorrow! smile

In reply to Matt Bury

Re: Audio/Video repository plugin for Moodle 2.3

by Paul Nicholls -

Hi Matt,

You're spot on - that's exactly what it does (record to WAV, which is how Flash natively captures the audio, then transcode to MP3 and upload via HTTP POST)... at least, that's what the widget does in the assignment type; it's a little different for the repository plugin, though the HTTP POST code is still there as I'm hoping to extend the recorder and make it a more generic widget that could be used just about anywhere, since all it requires is Flash Player (10.1 or above) and anything on the server side that can accept POST requests.

The MP3 encoder I'm using seems to be pretty quick (it's intended to be a very light-weight encoder), and it also provides progress events (which allow the "preparing for upload" progress bar to give some idea of actual progress, rather than just locking up the interface until it's done).

I'm certainly aware of AMFPHP, but I've had trouble making it work in the past (probably my fault), so I decided to go for the more straightforward (from a PHP perspective, at least) HTTP POST approach.  The repository plugin then diverges from the HTTP POST approach by accepting a Javascript callback which it'll pass the filename and content to - this is done primarily so that everything can happen neatly within the repository plugin rather than needing an iframed page that handles the POST and dismisses the file picker.

I'm one of those people who tries to steer clear of Java applets - for a few reasons, but mostly because they tend to be slow to initialise and browsers tend to give you lovely security warnings before they'll let you run them - so I tended towards Flash (which, incidentally, stats tend to indicate has a higher adoption rate than Java browser plugins).

Ultimately, if I could find the time to do so, I'd like to make the recording widget into more of a framework with an HTML interface which can use Flash to do the dirty work - or, once the capability is available, can be switched to use HTML5 (retaining the Flash as a fallback).  Last I heard, browsers were yet to implement audio capture, which makes it less of a priority for me - but I'm trying to keep an eye out for browsers landing the functionality that'd make it possible.

-Paul

In reply to Ankit Gupta

Re: Audio/Video repository plugin for Moodle 2.3

by Paul Nicholls -

Hi Ankit,

Following on from the discussions relating to which technology to use, it might be worth extending and contributing to getusermedia.js - it's a shim for the HTML5 getusermedia functionality, which when I last checked supported webcam/video only (getusermedia doesn't support microphone/audio yet, but it's planned).  The main issue with this is that browsers haven't implemented MediaStreamRecorder yet, so you might need to implement something similar for that (if nobody else has done it yet!) - use MSR if present, falling back to Flash if necessary (which it would currently always be).  Flash seems like it might be a good choice for the fallback, since it's easy to send data between Flash and Javascript.

Extending getusermedia.js and/or creating a similar shim for MediaStreamRecorder would not only be a great way (in my opinion) of implementing the A/V repository plugin, but would be a great contribution to the wider web development community by themselves.

-Paul

P.S. This is actually another one of those things that's been on my to-do (or at least to-investigate) list, but I just haven't had the time to do it - I'd been wanting to add audio support to getusermedia.js for use in my audio recording assignment type, so that I could tie a new HTML front end to getusermedia.js.

In reply to Paul Nicholls

Re: Audio/Video repository plugin for Moodle 2.3

by Ankit Gupta -

Hi Paul,

Thanks for the information on the getusermedia.js. I have kept it on watch on github. That could be of good use considering the surge in use of HTML5 technology. Flash and Java both can be used as a fallback for HTML5 (as java has lesser dependencies, except for the permissions issue)

I will definitely look into MSR after I am done implementing a basic framework for the A/V plugin.

In reply to Ankit Gupta

Re: Audio/Video repository plugin for Moodle 2.3

by Troy Williams -
Picture of Plugin developers

Hi Ankit,

I have some nanogong code I haven't touched in a few months I will put up on github in next week you may be interested in.  Adds nanogong to editor and allows voice recording in spx format to be stored under users draft area in any form where html editor (tinymce). The module/tool etc then can save under it's own component/filearea in the filepool.

tinymce - nanogong

A filter that will load nanogong applet with just playback controls.

Troy

 

 

Average of ratings: Useful (1)
In reply to Troy Williams

Re: Audio/Video repository plugin for Moodle 2.3

by Ankit Gupta -

Hi Troy,

I have recently implented a repo-plugin for audio capture using Nanogong which records via the filepicker. This is the git-hub repo : https://github.com/ankitdbst/moodle-repository_mediacapture It's still-under developement (works!). 

I had TinyMCE plugin in mind (similar to the preview you have attached) as HTML editor is used pretty much everywhere. This should definitely save me a start. Let me know the git-repo. Would be happy to take a look.

Cheers

In reply to Ankit Gupta

Re: Audio/Video repository plugin for Moodle 2.3

by Graeme Boxwell -
Hello, Great to see your excellent work so far on this plugin. This would be fantastic for the promotion of audio feedback to students, as well as many other uses. The HTML editor part of this would be really beneficial as this is the area that staff use currently with Nanogong in Moodle 1.9 and if we could continue to support them in the way they currently use it we would have more chance of keeping them engaged with this technology. Thanks again for the hard work! Graeme
In reply to Graeme Boxwell

Re: Audio/Video repository plugin for Moodle 2.3

by Ankit Gupta -

Hi Graeme Boxwell,

Thanks a lot for the encouragement. I had planned on developing that too, as that seems really beneficial. But I was in touch with one of Nanogong's developer Dr. David Rossiter and they have come up with the both the activity module and HTML editor TinyMCE plugin. Here is more to that : http://moodle.org/mod/forum/discuss.php?d=203460

I would continue to work on this and the video part of the plugin. Will post updates. 

Cheers

In reply to Ankit Gupta

Re: Audio/Video repository plugin for Moodle 2.3

by Ankit Gupta -

Updated the Media Capture repository plugin with support for Video Recorder.  The plugin offers to record audio/video from the same interface.

Audio recording is done using Nanogong and Video recording via Vimas applet (demo version)

Github Repo

In reply to Ankit Gupta

Re: Audio/Video repository plugin for Moodle 2.3

by Ankit Gupta -

Update

I have completed a 0.1v of the repository_mediacapture plugin for Moodle 2.3.  The plugin offers audio/video recording capabilties in both Java/Flash and fallbacks to the other technology in case one is missing from the client browser.

Currently Flash is given preference over Java. I have used the following recorders for the plugin :

1. Nanogong applet for audio recorder in Java and Paul Nicholls Flash recorder (Thanks Paul). 

2. Red5Recorder for video recording using Flash and Vimas video recorder applet in Java.

Note: Plugin requires Red5 to be installed on the server for Video recorder in flash to be able to connect to a RTMP server for exchanging data.

Check the Git repo here 

In reply to Ankit Gupta

Re: Audio/Video repository plugin for Moodle 2.3

by Gurudutt Mallapur -

Hi,

It's great to see that extra care has been taken to ensure that the plugin is generic. I hope this is the correct place to suggest a feature for the plugin.

The PopCorn Maker application from Mozilla allows to create "dynamic video" i.e. adding of outside content from youtube, hyperlinks, inline maps at various points in the originally static video.

This will help students/teachers (in fact anyone) to start with a basic video and enrich it with extra content from anywhere on the internet. One of the most successful Open Content projects Wikipedia has been built like this by by contributors worldwide.

I've already started a discussion with more details on the "Resource Types" discussion forum about feasibility of developing a Moodle Plugin. I then happened to chance upon your existing customizable plugin.

Adding Popcorn Maker capability could turn out to be a killer-app for both Moodle and Mozilla and definitely for the user community.

Esp. students more comfortable with computers and video than writing text.

Thanks,
GuruM

In reply to Gurudutt Mallapur

Re: Audio/Video repository plugin for Moodle 2.3

by Gurudutt Mallapur -

Pasting details on Popcorn here for easy reference:

>>>>

Can Mozilla Popcorn for (creating dynamic video content) be supported as a new feature in Moodle?

Videos are a great aid to learning.
The only thing is that they're static i.e. once they're recorded they don't evolve.
Mozilla has come up with a HTML5 based way to pull-in content into a video.

TED Talk video by CEO of Mozilla on Popcorn:

I searched the site/forums for any plugin or support for Mozilla's Popcorn.js
but couldn't find anything.

About Popcorn: http://mozillapopcorn.org
0) Review: http://www.webmonkey.com/2011/11/mozilla-reinvents-web-video-with-popcorn-1-0

1) Pull-in outside content into the video using different plugins
   for facebook, googlemaps, twitter etc in the Butter.js player :
   http://popcornjs.org/popcorn-docs/plugins
2) Use Popcorn.js timeline video editing with other players like youtube, vimeo etc :
   http://popcornjs.org/popcorn-docs/players
3) A full feature 3D documentary which (also) uses Popcorn:
   3D dynamic video with links: http://www.wired.com/underwire/2011/11/one-millionth-tower

4) Popcorn parsers supports subtitle formats ( SBV, SRT, SSA, TTML, TTXT and VTT): http://popcornjs.org/popcorn-docs/parsers

5) PopCorn API reference: http://popcornjs.org/popcorn-docs/index.html

Thanks,
Guru M

In reply to Gurudutt Mallapur

Re: Audio/Video repository plugin for Moodle 2.3

by Paul Nicholls -

Hi,

Although Popcorn Maker certainly does seem worth integrating with Moodle in some way, I'm not sure that the file picker / repository browser is the best way to implement it.  You'd either end up constraining the Popcorn Maker interface to a very small size to fit into the file picker, or you'd have to just have a button in the file picker that launches a whole new window with Popcorn Maker in it.

It's still not a perfect solution, but I wonder if it might be better to develop an assignment submission module and perhaps a resource module.  The assignment submission module would allow students to create and submit videos using Popcorn Maker, whilst the resource module would allow teachers to create videos to use as teaching resources. This would narrow your options for where you can use it a little, but I think it should cover most potential uses of it whilst alleviating the issues that crop up if you try to fit it into the file picker interface.

-Paul

In reply to Paul Nicholls

Re: Audio/Video repository plugin for Moodle 2.3

by Gurudutt Mallapur -

Hi Paul,

Thanks for the suggestions.
I'm new to Moodle as a tool. I just searched for likely candidates which might work with integrating Popcorn.

Are there __people__ you can suggest in Moodle who'd be really interested in carrying forward the integration of Popcorn?

Otherwise I feel a good tool for the Moodle community may go begging in various discussion forums.


Thanks,

GuruM

In reply to Gurudutt Mallapur

Re: Audio/Video repository plugin for Moodle 2.3

by Davo Smith -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

Gurudutt,

If you are saying you would like to employ someone to add 'Popcorn' support to Moodle, then the best places to try are to either post to the 'jobs' board (Community > Jobs, at the top of this page), or contact one of the Moodle Partners listed at http://moodle.com.

If you are not offering to pay for this, but are simply proposing it as a good idea, then the best thing to do would be to post the request to http://tracker.moodle.org, possibly create a page with an in-depth proposal on http://docs.moodle.org/dev and then promote the issue (and the docs page) here in the forums (and anywhere else, e.g. blogs, twitter, etc. where you spend your time). If enough people vote for it or are in favour of it in the forums, then you might find someone (either in HQ or in the wider community) who is interested in spending the time to add it.

Average of ratings: Useful (1)
In reply to Davo Smith

Re: Audio/Video repository plugin for Moodle 2.3

by Gurudutt Mallapur -

Hi Davo,

I'm not a commercially inspired person to employ someone to develop the Popcorn support.

What I am is - interested in education and learning tools like Moodle which can help students learn in a more holistic and natural medium. Text hardly qualifies as a natural medium of learning. Video is the closest you can get to "experiencing" a topic. However static video is "static". Some time back I did have an idea to convert video to a more dynamic hyperlink based system. So when I saw Popcorn actually bring that to reality I said WoW!! This needs to be in Moodle.

Popcorn might help change the game as far as interesting young people in dynamically "grown" self-learning/self-teaching like in Wikipedia.

Moodle might be made more interesting by extension (literally).

Hence the suggestion.

I've never tried "promoting" an idea before. So I'm still learning the right way to go about things. Thanks for the tips.

It might help if you could point to a person who's already good at promoting such ideas within Moodle. 'Coz by the time I learn promotional techniques it may be quite late.

Regards,

GuruM.

In reply to Ankit Gupta

Re: Audio/Video repository plugin for Moodle 2.3

by Sankar Mahadevan -

Hi Ankit, I have this issue in my Moodle 2.3 site. I can record audio or video from file picker menu. In the recording window I can hear the sound after finished recording. But after upload it, I can not hear the sound. When I download as file, I am able hear the sound. What would be the issue? Any solution for that?
Thanks in advance,
Regards,
Sankar.