Biki Deka
Biki Deka

Reputation: 1

How to create one playable webm file from two different video tracks with same configuration in Mediarecorder?

I have a mediastream containing a video and audio track which is being recorded using Mediarecorder and every blob I get per second am sening to the server to write in a webm file. (the file is playable) But If I pause the Mediarecorder before replacing the tracks with new ones with same configuration, and resume the recorder and save blobs in the same file. The file turns out to be only playble untill I pause the recorder. So basically how to create one playable webm file using mediarecorder from two different video tracks with same configuration.

//client.js

const videoStream = await getUserMedia({video: true})
const recorder = new Mediarecorder(videoStream, {mimeType: "video/webm; codecs=vp9"});
recorder.addEventListener('dataavailable', function(blob) {
    const buffer = await blob.toArrayBuffer();
    socket.emit(buffer);
})
recorder.start(1000);

//after some time
recorder.pause();
recorder.requestData();

//replace track
videoStream.removeTrack(oldvideotrack);
videoStream.addTrack(newVideoTrack);

recorder.resume();


//server.js
const file = 'file.webm'
socket.on('data', function(buffer: ArrayBuffer){
     appendFile(name, new Uint8Array(buffer), function (err) {
      if (err) {
        throw err;
      }
    });
})

Upvotes: 0

Views: 95

Answers (0)

Related Questions