HTML5 Media Elements
Notes about the implementation of the HTML 5 media elements.
- bug 336164 for the <audio> element implementation
- bug 382267 for the <video> element
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)."