Microsoft has introduced a codec pack which adds support for Ogg Vorbis and
Theora media to the Edge browser, as well as enabling WebM VP8 and VP9, in
regular <video> elements.
They seem to have done it right -- if you install it, Commons will
automatically pick up the native WebM or ogg playback and use it in place
If we're lucky, this'll get rolled into a default option some day; if not,
we can still point to the download fairly easily as an "improve your
playback experience" warning. (Filed
https://phabricator.wikimedia.org/T182129 to improve this.)
Now that we've got MP3 uploads starting up, the less-controversial MP3
*transcodes* are now on as well. :D
This means that Safari, Edge, and IE users will start playing back audio in
This means faster load times, which will get even better when we finish
retooling the media player controls later on...
It also means that the mobile view, which is incompatible with our current
media controls, will start having working audio on iOS and other
non-Android devices. Rock on!
(Firefox, Chrome, and Android will continue to natively play back Ogg
Vorbis audio files, or the Ogg transcodes of other formats.)
Looks like it will be a few days before the batch jobs finish at their
current rate to fill in the back-catalog; newly-uploaded files will
automatically pick up MP3 transcodes.
The ogv.js decoder shim is still used for video on Safari/IE/Edge, and for
audio in cases where an MP3 transcode isn't present yet.
== How does it work? ==
Similar to video, we produce files in multiple formats:
* the original file
* transcode to Ogg Vorbis
* transcode to MP3
If the original file is already Ogg Vorbis, we don't produce an Ogg Vorbis
transcode -- same if it's MP3 we don't produce a second MP3. All the ones
we do have get listed out in separate <source> elements, in a
server-defined preference order.
For browsers without special player JS, the <audio> element picks up the
first source the browser is compatible with -- so Safari or Edge sees only
MP3, while Chrome or Firefox sees them. Our player JS in desktop mode also
picks up native-Ogg preferably to MP3, but will use MP3 preferably to
software-Ogg (ogv.js shim).
In theory this should all be pretty transparent, and most people shouldn't
notice which version is being played back. But there's likely more work to
be done, from redoing the frontend player code to making it easier to place
audio and video in the editor. :)