hls-test/thoughts.md

50 lines
2.1 KiB
Markdown
Raw Normal View History

2021-10-22 18:27:02 +00:00
"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