HLS with VP9 (.mp4)/MJPEG (.mov) video tracks and Opus/MP3 audio tracks. Video.js enabled to provide HLS-over-MSE for Chrome/Firefox.
Current behavior:
Browsers that play the VP9 track will get sharp video, those that play the MJPEG track will get blurry video. Audio should sound the same either way.
MSE-based streaming with VHS
Firefox seems to work with VP9 & Opus tracks via video.js
Chrome works (needed to fix an output setting)
(disabled) Safari uses the MP3 audio tracks and VHS gets confused because it tries to parse them as MP4 (not Safari's fault)
Apple HLS player
macOS 13's Safari 16 plays MJPEG.
iOS 16 plays VP9 if supported, or MJPEG if no hardware codec
Those last two will also play h.263 or MPEG-4 visual IF labeled as if h.264 in the playlist; MJPEG can be properly labeled as "jpeg". I haven't found a supported labeling that is correct yet.
no access to iOS 13-15
iOS 13 doesn't seem to like mjpeg in .mp4, but .mov is fine
iOS 12 doesn't seem to like any version on an old iPad Air, except with h264 video
no access to iOS 11
iOS 10 on iPhone 5C plays h.263, or mpeg-4 visual IF labeled as false avc1.blah. It will also play mjpeg if so mislabeled, but only in .mov not in .mp4 as above.
iOS 9 doesn't understand the required version of HLS playlist format, and fails.