videojs-record: Cannot record video+audio on Safari 11/12/13

Description

Cannot record video/audio on Safari 12.0.3 using the following libraries:

VIDEOJS: Using video.js 7.5.0 with videojs-record 3.4.2 and recordrtc 5.5.4

Steps to reproduce

Just try to record a video using Safari browser

Results

Expected

Record the video correctly

Actual

The video has a small delay (less than 2 seconds) and when I start recording, the video doesn’t stop and I see the error below in the console

Error output

Browser console produces the following:

VIDEOJS: – "ERROR:" – "Your browser does not supports Media Recorder API. Please try other modules e.g. WhammyRecorder or StereoAudioRecorder."
(funzione anonima) — video.min.js:12:1481
error — video.min.js:12:2368
dispatcher — video.min.js:12:10365
pe — video.min.js:12:11112
trigger — video.min.js:12:15153
(funzione anonima) — video.min.js:12:193742
n — video.min.js:12:12359
n — video.min.js:12:12359
dispatcher — video.min.js:12:10341

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 34 (16 by maintainers)

Most upvoted comments

Did some testing with Safari iOS 12.2. After enabling MediaRecorder in Experimental Features as described in previous comment, results for online demos are:

  • audio-only: record/playback worked, no glitches
  • screen-only: error: navigator.mediaDevices.getDisplayMedia is not a function (as expected)
  • image-only: worked ok, except the captured image is skewed when displaying
  • video-only: recording is fine, but recorded blob is not loaded, stays on the video preview screen. no errors logged.
  • audio-video: recording seems ok but no record complete callback after pressing stop, log ends with:
[Log] Stopped recording video stream. (RecordRTC.js, line 125)
[Log] Recorder state changed: – "stopped" (RecordRTC.js, line 705)

in this moment the only way for record in IOS is enable experimental feature for MediaRecorderAPI?

Yes.

iOS 14.3 first beta has MediaRecorder enabled by default as well, if anybody want to try it out.

How can I configure WebAssemblyRecorder or WhammyRecorder in the plugin?

Use the videoRecorderType option. See https://collab-project.github.io/videojs-record/#/options

I tested with Safari 13.0.2 on OSX 10.14.x and was able to record after enabling the experimental MediaRecorder API. So Safari 13 still can’t record out-of-the-box.

Ok, thanks.

I’m using iOS 13.1, Safari 13.0.1 on iPhone 7.

I also tested with Safari 12 but they have not included the MediaRecorder API that is available in Safari Technology Preview. We’ll have to wait till Safari 13 (autumn 2019) I guess.

Relevant webkit ticket: https://bugs.webkit.org/show_bug.cgi?id=85851

Also see https://addpipe.com/blog/safari-technology-preview-73-adds-limited-mediastream-recorder-api-support/