New module for HTML5 P2P videoconference

New module for HTML5 P2P videoconference

by Daniel Neis Araujo -
Number of replies: 11
Picture of Core developers Picture of Plugin developers Picture of Translators

Hello,

I've developed a new activity plugin to allow users to interact using video and audio conferencing with HTML5, no needs for flash or other plugins. It is also P2P, except for the events signaling.

It is available on github

https://github.com/danielneis/moodle-mod_webrtcexperiments/

And is currently awaiting approval to be added to the plugins repository.

This project uses the code from

    http://webrtc-experiment.com/

to implement an activity module for Moodle
to allow people to interact more freely!

This module currently offers:

* Add an activity module for users to create meetings
 * base on code from https://github.com/muaz-khan/WebRTC-Experiment/tree/master/meeting

But WebRTC is much more than that!

Future features:

* Screensharing
* Colaborative canvas
* Record sessions

This module needs a signaling server (https://github.com/muaz-khan/WebRTC-Experiment/blob/master/Signaling.md)

There is one websocket signaling server available at

    https://github.com/muaz-khan/WebRTC-Experiment/tree/master/websocket-over-nodejs

If you don't want (or dont feel the need to, or can't for any reason) to run your own server,
dont worry, this module will use the server below by default (under TLS)

    wss://novoaeon.com.br:12034

Note that there is no warranty for this server to be up and running.

Hope that you like =)

Kind regards,
Daniel

Average of ratings: Useful (4)
In reply to Daniel Neis Araujo

Re: New module for HTML5 P2P videoconference

by Justin Hunt -
Picture of Particularly helpful Moodlers Picture of Plugin developers

Outstanding!! 

I have a flash system I wrote for PoodLL, and was wondering how on earth I would ever find the time(or skills) to make an html5 replacement. I can't wait to try it out. 

Would it be right to assume that it works on modern firefox / chrome, and not on iOS?

Average of ratings: Useful (1)
In reply to Daniel Neis Araujo

Re: New module for HTML5 P2P videoconference

by Bas Brands -
Picture of Core developers Picture of Peer reviewers Picture of Plugin developers Picture of Plugins guardians Picture of Testers

Awesome! I think using webRTC to facilitate online classrooms would be very useful and engaging.

I have done a test run on my Moodle 2.7 system and am not sure it is working yet, perhaps that's because I have only tested it on one system.

My first impression after install is that it lacks a nice UI.

It would be great if there is some more information on the session status or if there would be a way of inviting course students to a session using the moodle messaging system. However, it's nice to see this being developed, I'd be happy to help out on git. I am real curious what the current state of BBB & WebRTC is at the moment.


Average of ratings: Useful (1)
In reply to Daniel Neis Araujo

Re: New module for HTML5 P2P videoconference

by Matt Bury -
Picture of Plugin developers

Hi Daniel,

That's fantastic! Thanks for all your hard work and dedication and for contributing this to the Moodle community smile

WebRTC depends on browser support and the last time I checked, IE 11 doesn't support it, which is to be expected from Microsoft (They claim to be developing their own WebRTC, which as far as I know is not compatible with the web standard).

If you're new to WebRTC, here's a bunch of FAQs that should answer most of your questions: http://www.webrtc.org/faq

If you don't want to install the Daniel's module just yet but want to try out WebRTC in Moodle, perhaps with a group of learners or colleagues, here's a quick and simple way to do it using a free 3rd party service: http://blog.matbury.com/2014/09/02/instant-simple-video-conferencing-free/

I hope this helps!

Average of ratings: Useful (1)
In reply to Matt Bury

Re: New module for HTML5 P2P videoconference

by Daniel Neis Araujo -
Picture of Core developers Picture of Plugin developers Picture of Translators

Hello, everybody


thanks for all feedback!

The plugin is still in early stages of development, and realy needs some work on UI. =)

I've used the moosh tool (https://github.com/tmuras/moosh) to create the mod from a template at https://github.com/moodlehq/moodle-mod_newmodule

It has some minor warnings about code style but it should be working ok.


When you access the instance added to the course, the video session isn't automatically created, you must click on "Setup new meeting" and then you'll be asked to share your webcam and microphone.

If you want to join an existing meeting, you should wait a little and the list with the available meetings for that activity will be shown between the button and the video component. When you click "join", you'll be asked to share webcam and microphones.


I've tested this on same host of wss signaler server, so I am not sure that the cross-domain request will work. If not, everyone will need to setup a signaling server on the host.


Feel free to send sugestions and pull requests =)


Kind regards,

Daniel

Average of ratings: Useful (1)
In reply to Daniel Neis Araujo

Re: New module for HTML5 P2P videoconference

by Daniel Neis Araujo -
Picture of Core developers Picture of Plugin developers Picture of Translators

Hello, everybody


mister Anthony Borrow revised the plugin and made it available (after some corrections) on plugins repository at the address below:


https://moodle.org/plugins/view.php?plugin=mod_webrtcexperiments


I've made mode tests and changed the UI so now there is a message telling people to wait a little for the list to be populated and there is also a "leave meeting" button.


I have made some tests on localhost using the signaling server at novoaeon.com.br, so there is no problem with cross host requests =)


Hope that you like!


Kind regards,

Daniel

Average of ratings: Useful (1)
In reply to Daniel Neis Araujo

Re: New module for HTML5 P2P videoconference

by Matt Bury -
Picture of Plugin developers

It'll be great to have WebRTC built into Moodle.

Gonna try it out smile

In reply to Daniel Neis Araujo

Re: New module for HTML5 P2P videoconference

by Matt Bury -
Picture of Plugin developers

It installed without a hitch. Setting up a meeting room was easy and intuitive. Everything worked as expected. I like this module so far smile

In the meeting room, what I get is a vertical list of full-width video windows from the webcam of each participant. Each window is a little smaller than my browser window so I have to scroll vertically between windows to see them.

Here's some ideas that immediately spring to mind:

  1. set the size of each video window (height and width),
  2. have the windows arranged horizontally, across the top or vertically along one side,
  3. have the option to embed other activities/resources on the same page, i.e. with iframes, with the video windows so that all participants are on the same page looking at the same activity/resource together (I don't know if it's possible to embed Moodle activities into pages without the navigation and other layout features, so this may not be feasible),
  4. a text area, with the video windows, where the teacher can embed text and media,
  5. is it possible to add a chat window, e.g. Moodle chat?

I think this could be an amazingly useful module. Has Martin Dougiamas seen this?

In reply to Daniel Neis Araujo

Re: New module for HTML5 P2P videoconference

by Justin Hunt -
Picture of Particularly helpful Moodlers Picture of Plugin developers

I just installed it from Github. And it worked a treat. Excellent work.

Like Matt and you both said, there is plenty that can be done from here. But it is really exciting. 

Average of ratings: Useful (1)
In reply to Justin Hunt

Re: New module for HTML5 P2P videoconference

by Daniel Neis Araujo -
Picture of Core developers Picture of Plugin developers Picture of Translators

Hello, everybody


i am happy that the module is at an usable state!

TThank you vary much for the feedback, it is really important to keep things flowing =)


About the layout, we have a <video> element that behaves like any others.

I was thinkig about use the bootstrap grid system and just add smaller video boxes.


About the video dynamic resizing, it can be done, sure. I am still using "plain" or "standard" javascript plus the meeting.js library, but there are plans to use JQuery since YUI future is unknown (https://moodle.org/mod/forum/discuss.php?d=268190).


About embeding activities and other resources, the plugin has a description, i will start by adding an option to show/hide this description on the module view page. This is already done for show description on frontpage, do you think we need two different fields?


About a colaborative space, WebRTC protocol allows users to have a shared canvas, and also p2p text-chat rooms. Since moodle's default chat is not what we can call "scalable", we may try this new protocol =)


Kind regards,

Daniel


Average of ratings: Useful (1)
In reply to Daniel Neis Araujo

Re: New module for HTML5 P2P videoconference

by Daniel Neis Araujo -
Picture of Core developers Picture of Plugin developers Picture of Translators

Hello, everybody


I've made available a new version of the module at the repository (https://moodle.org/plugins/view.php?plugin=mod_webrtcexperiments)


New new release adds various new features:


* Text-chat

* Record audio and video streams of any participant and save to local computer

* Mute/unmute controls for video and audio

* Video in full-screen


I am still looking for screensharing and colaborative canvas code, so when I found it I will add it, for sure.


Also, this version uses a more "updated" library, from same developer, called RTCMulticonnection (http://rtcmulticonnection.org/) so it should be more reliable than previous one.


Hope that you like!


Kind regards,

Daniel

In reply to Daniel Neis Araujo

Re: New module for HTML5 P2P videoconference

by Matt Bury -
Picture of Plugin developers

Cool cool Can't wait to try it out.