HLS with VP9 (.mp4)/MJPEG (.mov) video tracks and Opus/MP3 audio tracks. Custom MSE wrapper enabled to provide HLS-over-MSE for Mac Safari/Chrome/Firefox.
+
HLS with VP9 (.mp4)/MJPEG (.mov) video tracks and Opus/MP3 audio tracks. Video.js enabled to provide HLS-over-MSE for Chrome/Firefox/desktop Safari.
+
+
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)
+
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 on most of my test machines, though macOS 12 ~2015 systems with Intel graphics require lying about the type.
+
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.