Media Player module now supports HTML5 video

Media Player module now supports HTML5 videoThere has been a lot of debate about Flash and HTML5 video ever since Apple and Steve Jobs took the decision to block Flash from their iOS operating system. Currently, iPhone and iPad users can’t view video or audio deployed on Moodle. Now the Media Player module for Moodle brings support for HTML5 video tags to resolve this issue.

What’s the Media Player module?

It’s a Flash based activity module for Moodle 1.8 and 1.9 that plays a wide range of media formats without the need for any special programming skills. Flash has been the de facto method for deploying audio and video on the web for at least the last ten years. Everyone uses it because it’s more stable, less intrusive and works in more browsers and on more operating systems than any other method. Basically, if you want the maximum number of users to be able to view your video content, Flash is the best choice.

Not only does it guarantee the best compatibility available, it also has all the other advantages and advanced features of Flash. At the heart of the Media Player module is a stable, powerful and feature rich Flash based media player. It can play a wide variety of video formats and play video streamed from a media servers (RTMP) including live feeds and can switch between high and low definition video streams according to users’ available bandwidth. It supports a variety of playlists, Flash animations, audio, thumbnails and poster images, external caption files, external audio tracks, animated and/or interactive overlays and full-screen display mode. This is what sets the Media Player module apart from other methods of deploying media.

Why include support for HTML5?

A short while ago, Apple Inc. took the decision to block Flash from all their iOS mobile devices including iPhone, iPod and iPad. This means that Apple iOS users can’t view video on the majority of websites. Unfortunately, this also means that learners who have Apple iOS devices can’t view video or listen to audio deployed on Moodle. Subsequently, I have received a lot of requests for the Media Player module to support HTML5 video. Initially, because I designed the module as an advanced, interactive activity module for video, I didn’t think it was appropriate to support HTML5 video. However, on reflection, I’ve realised that the Media Player module is now the only viable way for non-developers to deploy video in Moodle to accommodate learners who have Apple iOS devices.

What can we expect from HTML5 video?

HTML5 video is a simple and quick way to deploy simple web video on browsers that support it. These currently include MS Internet Explorer 9 (but not IE7 or IE8), Apple Safari, Opera, Google Chrome and Firefox. However, HTML5 is not Flash and so we can’t expect the same advanced features. HTML5 supports RTMP streaming in theory but it’s dependent on users’ web browsers supporting it which, at the moment, most don’t. That brings me to two main caveats of using browser based video playback.

For one;  it’s dependent on browser support and how the web browser interprets the HTML5 scripting. Different web browsers interpret the same HTML, HTML5 and Javascript code so that it can appear and behave differently.

The other; there’s currently a conflict between some powerful interested parties about which video CODEC to use. Firefox is pushing for the open source Ogg, while Google would like WebM and Apple and Microsoft would like to push H.264. Currently, this means that if you want to deploy video across all the main browsers using HTML5, you have to provide at least 3 versions of each video file: One as Ogg, one as WebM and one as H.264, tripling the required storage space for video on your servers. Luckily, it’s only Apple iOS that blocks Flash and Flash supports H.264, so if you deploy videos with Flash with H.264 and provide an HTML5 fall-back, you only need to provide one video file so you’ll get fully functioning interactive Flash video on all other desktops, laptops and mobile devices, and simple HTML5 video on Apple iOS devices; iPhone, iPod and iPad.

And in the future?

Hopefully, the conflict between Firefox, Google, Apple and Microsoft for a video CODEC standard can be resolved and web browser developers can move towards more standardised interpretation and support of HTML5 video. There are also several projects under way for providing more feature rich video experiences and I expect that deploying web video without Flash will get easier.

Further reading about HTML5 video:

Media Player module for Moodle project site on Google Code:

Moodle SWF Activity Module developer preview

SWF Activity ModuleOK, this is going to be a very techie post as it’s aimed exclusively at developers who are interested in integrating Flash and Moodle. If you’ve never written a line of computer code, then this article will most probably bore you to death!

What is the SWF Activity Module?

The SWF Activity Module deploys Flash learning applications as activities in Moodle courses. It uses standards compliant XHTML 1.0 Strict embed code and leverages SWFObject 2.2. For Moodle users, especially non-developers, it’s a quick, easy, reliable, and mostly importantly, non-techie method of embedding Flash.

What’s the developer preview?

I’ve just uploaded a two-part installer package to the SWF Activity Module project site on Google Code. The first part, like any other Moodle activity module, performs the installation in Moodle and acts as the user interface. The second part is the Flash Remoting service library which handles communication between Flash and Moodle. The particular implementation of this is AMFPHP. This package is a developer preview. It has not been extensively tested, has not been proven to be stable and is not intended for installation on public servers.

What does it do?

So far, the activity module does the following:

  • Installation
  • Backup and restore
  • Creates and manages SWF Activity Module instances
  • Creates and manages grade items in Moodle’s grade book
  • Custom grade reports

The Flash Remoting service library does the following:

  • Establishes fast, lightweight, powerful two-way communication between Flash learning applications and Moodle
  • Handles user authentication, capabilities and permissions
  • Allows Flash learning applications to push and retrieve grades and user data in Moodle’s grade book
  • Allows Flash learning applications to retrieve user data such as avatars, VoIP client IDs, groups, etc. to facilitate social networking and web communication between learners and teachers

Accurately track learners’ activities while on-line

The custom grade reports are particularly interesting because they provide a much asked for function in Moodle activities, namely tracking the amount of time that learners spend on activities accurately. The problem at the moment is that Moodle can only record the time elapsed between requests sent to the server while learners are using a module. Between server requests, Moodle can’t tell whether a user was studying or if they went for a tea break, either way the elapsed time logged is the same. Since Flash learning applications run on learners’ computers, they can track mouse, keyboard, camera and microphone actions over any given period of time. If a learner goes for a tea break, mouse, keyboard, camera and microphone actions stop and Flash learning applications can take this into account, for example, by discounting inactive time. I had to create the custom grade reports because Moodle has no provision for this kind of user data.

Open up Moodle to more web services

The SWF Activity Module is far more than we’ve come to expect from Flash based learning interactions. The Flash Remoting gateway opens up Flash and Moodle to a wide range of 3rd party web services. Here’s a few possibilities to consider:

  • Deploy web conferencing clients that use open VoIP and chat protocols. Here’s an example of an existing project could be leveraged.
  • Deploy Flash clients that leverage Google Wave’s open protocol, when it goes fully public, for real-time multimedia collaborative projects.
  • Consume map, video, search and data services from providers such as Google and Yahoo!
  • Or any combination of protocols and services for media-rich, collaborative learning interactions. The sky’s the limit.

How can I use the developer preview?

This is where I need your help. I’d like this module to be tested in as many environments as possible except, of course, public servers so if you are a developer and have a development server with Moodle installed, this is where you can help. Installation instructions are included in the developer preview package and the Flash Remoting gateway comes pre-configured for Moodle. There’s also a sample “Grade Pusher” Flash application that simply pushes grades into Moodle’s grade book. Please try it out on your development servers and let me know if you encounter any problems with it.

The SWF Activity Module project site is at: where you’ll find downloads, documentation, examples, source code and the issues tracker.

The SWF Activity Module is proud to be open-source.

Moodle FLV Player module update

In February 2009, I released the first beta version of the FLV Player plugin activity module for Moodle. It leverages the ubiquitous JW FLV Player and has been very popular among teachers and course content developers working with Moodle. I’m working on a substantial update for the module and in this article I’m going to write about some of the improvements and new features in it.

What has changed?

The most significant changes in the module will be:

  • Support for alternative HD video streams.
  • Support for audio descriptions.
  • Uses simpler SWFObject 2.2 embed method.

Alternative HD video streams

The current FLV Player module can play any video format supported by Flash Player, which includes FLV, F4V, MOV,  MP4 and videos as well as MP3 and AAC audio files, and JPEG, PNG and GIF images (animation is not supported) and Flash animation files. See here for a full list of supported formats.

The new version of the player now supports an alternative HD video stream. This means that users can switch between normal and high definition video at the click of a mouse. All you need to do is provide two video files, one normal and one HD for the player to switch between. This is particularly useful for providing an alternative low definition stream to users with slow or intermittent internet connections.

Audio descriptions

This one’s still a bit buggy and doesn’t allow full control over the audio file. An audio description is a second, separate MP3 audio file that can be deployed alongside a video. It is synchronised with the video so that if you seek through it to a new point in time, the audio file plays at that point respectively. Users can switch the extra audio on and off as they like.

Audio descriptions are typically used for accessibility support for the visually impaired but can also be used for multi-language support, optional narrator’s voice overs, director’s commentaries, etc. I’m sure instructional designers, teachers and course content developers can come up with some creative applications for this feature.

SWFObject 2.2 embedding

Previous versions of the FLV Player module were a little “inconsistent” across different browsers and some suffered from bugs when it was necessary to perform Flash Player upgrades for users who don’t have Flash Player 9.0.115 or later installed. I’ve upgraded the module to SWFObject 2.2 and used a static embed method so that even with Javascript disabled, the video player will work, as well as detecting users’ Flash Player versions and informing them if they need to perform a Flash Player upgrade in order to view the video content, instead of automatically deploying Express Install, giving users more control. The new embed method has been successfully tested on Internet Explorer, Firefox, Safari and Google Chrome.

Prompt to upgrade the Flash Player version

A prompt to upgrade to the required Flash Player version.

Other features still supported

As well as these new features, the new version of the FLV Player will continue to support:

  • HTML notes under the video playback window so you can put lecture notes, diagrams, graphs, tables, photos, links to files or pages, etc. on the same page.
  • TimedText, RealText, ASX, ATOM, RSS and XSPF video caption formats (Users can now switch captions on and off).
  • XML Playlists.
  • Skins to change the visual appearance of the player (also includes support for XML based skins).
  • Definable player control colours.
  • Video poster images before playback commences.
  • A variety of other JW FLV Player plugins (as a CSV list).
  • Player configuration via an externally loaded XML file so that course-wide player policies can be established.

When will the new version be ready?

Many thanks to the brilliant developers at for all their ideas and hard work. I’m still testing and trying to “iron out” the bugs in the FLV Player module but this should be finished in the next week or so. Unfortunately, there’s a bug in the Audio Description plugin, which is beyond my control and I’m waiting for the respective developer to resolve the issue. Hopefully, this will be soon.


After spending some time going over the various requirements for supporting the new plugins, the changes to the module code and the database table structure, I’ve realised that a number of the changes would “break” older instances on Moodle courses and lead to a lot of extra work for teachers and course content developers. With this in mind, I’ve decided to leave the FLV Player as it is for people who don’t need a feature-rich media player.

I’m now developing a very feature-rich “Media Player” module that will support most of the plugins currently available for the JW FLV Player as well as playlists and all the other features that we expect of a good web video application for e-learning. The module editing page will also be better organised to make it easier to use. The JW FLV Player plugins that I’m experimenting with at the moment are as follows:

Please note that the Live Stream and Snapshot plugins require a server-side script and will not be enabled as standard for security reasons. The search Seach Bar plugin can use custom search scripts but only search will be enabled by default.

Here’s the Google Code project home page:

New SWF Activity Module under development

Relates to: Moodle, Flash, SWFObject, AMFPHP

The most widely used and accepted platform for e-learning today is Adobe Flash. It brings the full power of multimedia (images, audio, video, text and animation) and dynamic interactivity to your computer. The most widely used open source platform for hosting and deploying e-learning resources is Moodle. Respectively, both platforms offer all the functionality you would expect for e-learning but there’s one major obstacle: they’re not very easy to combine.

What’s the new project?

I’ve started development on a new SWF Activity Module, a plugin for Moodle, that I hope will provide a comprehensive solution for Flash developers who want to create e-learning applications for Moodle and teachers and course content developers who want to create e-learning interactions that make full use of the possibilities offered by Flash.

Why develop this plugin?

In my opinion, this is something that has been long overdue and there have been previous attempts, most notably Jamie Pratt’s Flash Activity Module. Unfortunately, it was developed for Flash MX 2004 or Version 6.0, while we’re currently at Version 10, and is not forwardly compatible. So while e-learning and Flash speed ahead with ever more useful and powerful functions, anyone using this module gets left behind. The other solution currently available is an e-learning standard format developed by the US military called SCORM (Sharable Content Object Reference Model). While there is a lot of support available for this standard, it is very complicated and difficult to implement and it requires a high degree of specialist knowledge. Ask any IT support employee or e-learning developer about it!

How far has the project got?

So far, I have a working beta version that can deploy Flash e-learning applications of any version relatively simply and easily. A teacher or course content developer can now create e-learning interactions by combining Flash e-learning applications with media resource files. This is traditionally done with XML but the SWF Activity Module also supports a technology called Flash Remoting or AMF (Action Message Format) which is a very fast, efficient and versatile way for Flash e-learning applications to communicate with Moodle and other server-side applications. Learning applications will be able to retrieve all the data they need, i.e. images, audio, video, text and animations, to present sophisticated learning interactions and also pass back data about what learners do and how well they do it.

The SWF Activity Module learning interactions default database is organised so that one set of learning interaction data and media files, for example elementary vocabulary related to everyday objects, can be used by different Flash e-learning applications to dynamically create different learning interactions so that learners can practise and recycle the vocabulary in several different ways, i.e. matching images and recordings, dictations, questions and answers, word searches, etc. thereby consolidating their knowledge and skills.

What’s next?

There are two more main stages to the SWF Activity Module’s development. Firstly, to integrate the module with Moodle’s gradebook so that users’ grades can be recorded there along with other activities. I’ll most probably include a more comprehensive grading and results system specifically for Flash e-learning applications. And secondly, to provide a user-friendly interface for teachers and course content creators to create learning interactions by uploading the media files and entering data into Moodle’s database, or more simply put, putting images, audio, video, texts, questions and answers together so that Flash e-learning interactions can present lessons to learners.

Can I try it out?

You can see documentation for the SWF Activity Module here. There are some example learning interactions and video tutorial demonstrations available on a demo course my Moodle. Select “Login as a guest”. There is no need to create a user account. If you would like to see the editing controls in action and create a simple word search learning interaction for yourself, please contact me.

New FLV Player Module for Moodle

Relates to: Moodle, SWFObject, JW FLV Player

I’ve spent quite some time experimenting with video in Moodle. I’ve been looking for a reliable way to deploy video as an e-learning resource that will work across all platforms: Windows XP, Windows Vista, Mac OSX and Linux. So far, the most widely accepted video format has been Flash Video, otherwise known as FLV. FLV is used by most of the major media companies with a presence on the Internet, including YoutubeGoogle, Yahoo!, CNN and the BBC to mention but a few.

I’ve found that Moodle, as it stands (versions 1.8 and 1.9), is not the easiest possible way to deploy FLV video. Furthermore, if you want to add captioning, subtitles, links, etc. it becomes so difficult that you need to call in a developer or somebody who’s pretty well informed about IT, web design and server-side scripting. Even something as simple as displaying an image before the video starts. It’s certainly not for the average teacher or course content developer!

Well, I’ve decided that there has to be an easier way. I’ve developed a new plugin module that deploys FLV video in as user-friendly a way as I can. I used the JW FLV Player because it’s the most powerful and versatile Internet based FLV Player at the moment and only required a small one-off licence fee of €30 to use it on a website. It has too many features to mention in this article but you can get a good idea of what it’s capable of in the FLV Player Activity Module documentation.

I have a demonstration of the Moodle FLV Player Activity Module installed on my learning management system. The demo course allows guest access so there’s no need to create an account. If you would like editing privileges so that you can see how easy it is to use, please contact me. Alternatively, if you are already a Moodle user with administrator privileges, you can download and install the module for yourself.

I’ve released the FLV Player Activity Module under the GPL open source licence, which means that it’s free and you can change it or add to it in any way you like. If you make any changes to it, please let me know what you’ve done and why. Equally, if there are any changes or adaptations that you’d like to see made, let me know. If it’s something that would benefit the whole community, I’ll most probably include it in the next release.

The FLV Player project is hosted on Google Code with tutorials and sample downloads. It’s entirely free and you can download and install it in your Moodle in a couple of minutes. Click here.

I have a demo course on my Moodle where you can view some examples of the FLV Player module in action and also view a tutorial video demonstration on how to use it. Click here and select “Login as a guest”. There is no need to create a user account.