Webkit MediaRecorder Timeslice functionality on Safari 14.0.2 Mojave
Hi Folks We are developing a streaming system which uses MediaRecorder with timeslice. It's clear that Safari only has MediaRecorder as developer experiment, and that older versions of Safari dont support timeslice anyway. However, a recent WebKit thread https://bugs.webkit.org/show_bug.cgi?id=202233 <https://bugs.webkit.org/show_bug.cgi?id=202233> Suggests that timeslice *is* implemented in Safari 14.0.2 and the author provided an example jsfiddle: https://jsfiddle.net/hdwc2xzL/ <https://jsfiddle.net/hdwc2xzL/> Our experience suggests all is not as expected: On Big Sur (on Apple DTK) - Safari 14.02 (with mediarecorder enabled in experimental features) does appear to work as expected. MediaRecorder and timeslice all correct. On macOS Mojave (on MacBook Pro intel) - Safari 13 - (with mediarecorder enabled in experimental features). MediaRecorder initialises OK and works as expected (but without timeslice callbacks) - Safari 14.0.2 (with mediarecorder enabled in experimental features) Throws an error when initialising MediaRecorder "NotSupportedError: The MediaRecorder is unsupported on this platform” Both our own mechanism. and the jsfiddle referenced above shows the same error; try { mediaRecorder = new MediaRecorder(window.stream, options); // options is just {videoBitsPerSecond: 1500000} - hence allowing default mimetype, window.stream successful from getUserMedia } catch (e) { console.error('navigator.getUserMedia error:', e); errorMsgElement.innerHTML = `navigator.getUserMedia error:${e.toString()}`; // fails: "NotSupportedError: The MediaRecorder is unsupported on this platform” } so we dont even get as far as calling mediaRecorder.start(timeslice_ms) any more (as we did with Safari 13) Could anyone explain this behaviour in Mojave ? Should MediaRecorder work on the official shipping 14.02 downloaded on Mojave ? On a related note - what should we expect from mobile Safari with respect to timeslice MediaRecorder ? When might we see MediaRecorder enabled by default so we can use it for customer applications ??? Many Thanks !
Hi Mark, Thanks for reaching out. For timeslice specific questions, it might be best to continue discussions in https://bugs.webkit.org/show_bug.cgi?id=202233. Timeslice support in older versions of MacOS and iOS is tricky. On those OSes, including MacOS Mojave, MediaRecorder is not enabled by default. On the most recent BigSur and iOS versions, MediaRecorder should be enabled by default and timeslice should be supported. Hope this helps, Y Le lun. 1 févr. 2021 à 17:29, Gallery via webkit-dev < webkit-dev@lists.webkit.org> a écrit :
Hi Folks
We are developing a streaming system which uses MediaRecorder with timeslice.
It's clear that Safari only has MediaRecorder as developer experiment, and that older versions of Safari dont support timeslice anyway. However, a recent WebKit thread https://bugs.webkit.org/show_bug.cgi?id=202233 Suggests that timeslice *is* implemented in Safari 14.0.2 and the author provided an example jsfiddle: https://jsfiddle.net/hdwc2xzL/
Our experience suggests all is not as expected:
*On Big Sur (on Apple DTK)* *- Safari 14.02 * (with mediarecorder enabled in experimental features) does appear to work as expected. MediaRecorder and timeslice all correct.
*On macOS Mojave (on MacBook Pro intel)* -* Safari 13* - (with mediarecorder enabled in experimental features). MediaRecorder initialises OK and works as expected (but without timeslice callbacks) - *Safari 14.0.2* (with mediarecorder enabled in experimental features) Throws an error when initialising MediaRecorder *"NotSupportedError: The MediaRecorder is unsupported on this platform”*
Both our own mechanism. and the jsfiddle referenced above shows the same error; try { mediaRecorder = new MediaRecorder(window.stream, options); *// options is just {videoBitsPerSecond: 1500000} - hence allowing default mimetype, window.stream successful from getUserMedia* } catch (e) { console.error('navigator.getUserMedia error:', e); errorMsgElement.innerHTML = `navigator.getUserMedia error:${e.toString()}`;
// fails: *"NotSupportedError: The MediaRecorder is unsupported on this platform”*
}
so we dont even get as far as calling mediaRecorder.start(timeslice_ms) any more (as we did with Safari 13)
*Could anyone explain this behaviour in Mojave ? * *Should MediaRecorder work on the official shipping 14.02 downloaded on Mojave ?* *On a related note - what should we expect from mobile Safari with respect to timeslice MediaRecorder ?*
*When might we see MediaRecorder enabled by default so we can use it for customer applications ???*
*Many Thanks !*
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev
participants (2)
-
Gallery
-
youenn fablet