Mozilla supports various codecs in HTML media across Firefox OS,
Android and Desktop. Currently we support the following (feel free to
add if I've missed any):
H.264 in an MP4 container on Firefox OS, some Android devices and
planned for desktop
AAC in an MP4 container on Firefox OS, some Android devices and
planned for desktop
MP3 on Firefox OS, some Android devices and planned for desktop
WAV on all platforms
Opus in an Ogg container on all platforms
Vorbis in an Ogg and WebM container on all platforms
Theora in an Ogg container on all platforms
VP8 in a WebM container on all platforms
These are the formats that Mozilla has generally decided to support
"on the web". That is, a web developer can expect to provide a video
element with one of these formats as the source and expect it to
play,if not now then at some point in the future.
Recently there has been requests to support other formats,
particularly on Firefox OS. In the mobile world some devices have
cameras that record video in 3GPP format, and audio in other formats.
MMS messages can also contain video in 3GPP format. For Firefox OS we
would want to be able to play these formats if they are produced or
received by the device. While we want the support in Firefox OS we
don't necessarily want these formats to be supported on the wider web.
We want to reduce format proliferation. This makes interoperability
easier and reduces the decisions needed by web developers when they
want a video to play cross platform and cross browser successfully.
To enable Firefox OS to support formats that we don't want to support
in the wider web I think we should restrict these formats such that
they play only via local files or local apps on the device. The
Firefox OS device may be able to play a 3GPP file in the devices video
app for example, but not in a video element on a normal web page. RTSP
support should spawn the a local video player to play it, and not play
RTSP via audio elements on the wider web.
When there is a desire to support a new format we should first
consider if our existing formats cover the required use cases. If
there is a need, due to device requirements or the like, we should
limit the playback such that we don't increase format proliferation
across all operating systems, devices and browsers.
If you have any comments on this approach, feel free to reply here and
start a discussion. In particular I'm interested in if this approach
works in a world with possible partner requirements or other
commercial conflicts with Firefox OS.