HTML5 Media Elements

From MozillaWiki
Jump to: navigation, search

Notes about the implementation of the HTML 5 media elements.

There are already lots of libraries for managing sounds and video, but they have to fit the licence constraints, which are: MPL/LGPL/GPL tri-licence, MPL/LGPL dual licence, and most variants of BSD.

Multimedia libraries:

Library Licence Licence-Compatible
Gstreamer LGPL no
libxine GPL no
libvlc (Videolan) GPL no
mplayer GPL no

-> Unfortunately, there's not much which can be reused there.

Note: Updated GStreamer description to say LGPL not GPL. Getting multimedia support right is hard, so maybe Mozilla should seriously consider accepting GStreamer as a dependency under the LGPL. Dual-licensing GStreamer to LGPL/MPL would be very hard as the contributor list has become very long over the years.

Audio backend libraries: (see this thread)

Library Licence Licence-Compatible
OpenAL LGPL no
Portaudio MIT yes

-> Portaudio is a good candidate

Codecs:

The spec requires "WAVE container format with audio encoded using the PCM format." for <audio>, and recommends Vorbis/Theora for <video>.

Format Software Licence Licence-Compatible
Ogg/Vorbis/Theora Xiph.org BSD-like yes
MPEG-1 Audio Layer 3 (mp3) Lame, ...? patent issues
WAV libsndfile, audiofile GPL no [1]

[1] Here's a note from the portaudio wiki: http://www.portaudio.com/trac/wiki/tips/AudioFiles "Note that at this time, we do not know of any audio file I/O libraries with licenses that are as unrestrictive as the PortAudio License (most are LGPL)."