"All-open" mode uses only open formats, forces Safari on iPhone and older desktops to use ogv.js fallback: * DASH manifest * WebM VP9 video segments * WebM Opus audio segments * WebM Vorbis audio segments (for Safari) * WebM VP8/Vorbis flat file fallback "Open-forward" mode avoids ISO not-quite-open formats except in compatibility fallbacks. Multi-res capability for all modern desktops, but not iPhone or iPad which will load a single flat file natively. * DASH manifest * WebM VP9 video segments * WebM Opus audio segments * WebM Vorbis audio segments (for Safari) * WebM VP8/Vorbis flat file fallback (old Firefox/Chrome or JS off) * MP4 H.264/MP3 flat file fallback (for iOS and single-URL linking) "HLS-forward" mode has full multi-res capability on newer iPhones and iPads, AND all modern desktops, but requires making multiple H.264 and MP3 files and using MP4 container. * HLS manifest * MP4 VP9 video segments * MP4 H.264 video segments (for Safari) * MP4 Opus audio segments * MP4 MP3 audio segments (for Safari) * WebM VP8/Vorbis flat file fallback * MP4 H.264/MP3 flat file fallback (for single-URL linking) * Chrome/Firefox: use MSE to handle HLS * Desktop Safari: use MSE to handle HLS * iPhone/iPad: use native HLS * old Firefox/Chrome: use WebM VP8 fallback * old IE/Edge/Safari: use MP4 H.264 fallback "Split-ticket" mode works fully on VP9-supporting iPhones, iPads, and Macs but falls back to ogv.js for older ones, while modern desktops all get the multi-res magic. Requires using MP4 container and MP3 audio, which are not patented but the standards docs are paywalled. Note that desktop Safari with JS off won't see working video. * HLS manifest * MP4 VP9 video segments * MP4 Opus audio segments * MP4 MP3 audio segments (for Safari) * WebM VP8/Vorbis flat file fallback * Chrome/Firefox: use MSE to handle HLS * Desktop Safari w/ hw VP9: use MSE to handle HLS * Desktop Safari w/o hw VP9: HLS errors out; fall back to ogv.js * iPhone/iPad w/ hw VP9: use native HLS * iPhone/iPad w/o hw VP9: HLS errors out; fall back to ogv.js * old Firefox/Chrome: use WebM VP8 fallback