Extension:TimedMediaHandler/ogv.js

From MediaWiki.org
Jump to navigation Jump to search

TimedMediaHandler now includes a copy of ogv.js, a JavaScript compatibility shim which provides Ogg and WebM playback through JavaScript allowing audio/video playback for free-codec-only sites such as Wikipedia on Safari, Internet Explorer, and Microsoft Edge browsers.

Compatibility[edit]

Browser ogv.js Ogg or WebM Native Ogg Native WebM
Safari rounded.svg Safari 6.1-11 (macOS 10.7-10.13) Plugin-free No No
Safari (iOS 8-11) Plugin-free No No
Internet Explorer 10+11 logo.svg IE 9 (Windows 7) No No installable
Internet Explorer 10+11 logo.svg IE 10/11 (Windows 7/8/8.1/10) Requires Flash for audio No installable
Internet Explorer 10+11 logo.svg IE 10/11 (Windows RT) Requires Flash for audio No No
Microsoft Edge logo.svg Edge (Windows 10 PC/Tablet) Plugin-free installable installable
Microsoft Edge logo.svg Edge (Windows 10 Mobile) Plugin-free No No

IE and Edge on Windows x86 and x64 (not on ARM Windows RT or Windows Phone / Windows Mobile) can make use of native WebM support by installing WebM Media Framework components or for recent Windows 10 PCs the Web Media Extensions pack; if this is present it will take priority over ogv.js. Note the IE version does not include ogg audio support.

32-bit mobile devices and some older Windows machines may be too slow to play 360p videos via ogv.js; usually a slow browser will be detected and a lower-resolution 240p video will be picked instead.

Safari for iOS 6.1 and 7 have some of the APIs necessary but are very buggy, and ogv.js will automatically disable itself there as well.

Limitations[edit]

Current limitations:

  • Slow video performance at higher resolutions and in IE 10/11

Source selection[edit]

Default 360p or 480p WebM videos should run well on most Macs and in Edge. Higher resolutions can be selected manually, but will get increasingly slower. 1080p usually will not play well, but 720p may be ok on faster machines.

A JavaScript benchmark is used to detect relatively slow machines and either disable ogv.js entirely (if very slow) or default to a lower resolution (240p).

In the future, automatic switching of sources based on available bandwidth and CPU may be used to provide smoothest possible playback without manual selection, but this requires additional development.