Alternative to @teamhive/capacitor-video-recorder


as the plugin @teamhive/capacitor-video-recorder is not longer maintained (@teamhive/capacitor-video-recorder - npm) - which plugin do you recommend as full alternative?

1 Like

I went down this route as well but did not find anything remotely close. So I just decided to use video element and manually write recording function.

For example like this:

<video #videoElement muted playsinline>

Then assuming you’re working with angular live stream to it

async initializeCameraStream() {
try {
const constraints = {
video: { facingMode: “environment” },
audio: false

  const stream = await navigator.mediaDevices.getUserMedia(constraints);
  this.videoElement.srcObject = stream;
  this.videoElement.muted = true;; = stream;
} catch (error) {
  console.error('Error accessing media devices:', error);


This would now “live stream” from your camera to your video element. Of course you would have to write the startrecording stoprecording logic etc, if you are really going down this route I can help you.

So far for me it has worked perfectly, and it gives a lot of customization options, I have my own camera interface, with an algorithm that analyzes the recorded videos. I haven’t had any problems with it. You can also preview the video instantly after recording it using localstorage - cache .etc

Here is a preview of the camera interface and where I am pointing my phone to

1 Like


Thanks for your quick answer! I assume tomorrow we will be discussing which way we should follow. Could you provide me your email? Maybe it will be helpful. :slight_smile:


What is the status of this requirement, can someone provide a good code base for this? We tried to do it also by our own. But it looks like, Safari doesn’t support the MediaRecorder quite good

What is your experience?

@MarcinDl @Bauss

1 Like

hey guys, I’m having trouble using navigator.mediaDevices.getUserMedia(constraints) for my ionic angular project that I run on iOS.

It seems like it can’t access the mediaDevices API on the iOS app, but works fine on browser.

Any tips for this?