MediaRecorder captured on Chrome not playable on Mobile or Safari MediaRecorder captured on Chrome not playable on Mobile or Safari google-chrome google-chrome

MediaRecorder captured on Chrome not playable on Mobile or Safari


I think your problem may be in the first line:

    const mimeType = 'video/webm;codecs=H264'

The container you are using is webm, which typically uses codecs VP8, VP9. H264 is a codec used in the mp4 container.

Chrome supports webm. Safari does not (and all iOS browsers are based on Safari - hence your mobile issue).

You say that run on Safari, this outputs a playable video. use ffprobe to see what codec/containers are outputted on Safari - I am guessing that there is a change in container/codec.

Since your video is h264, you must simply change the container to mp4, and it will play everywhere. This is a 'copy' from one container to the other, not a transcoding, but you'll still need ffmpeg :)

Here's a post that might help: Recording cross-platform (H.264?) videos using WebRTC MediaRecorder