Estoy usando React And Electron para escribir un video grabado usando MediaRecorder en el disco.
El archivo de video se genera correctamente; sin embargo, solo se puede reproducir la primera gota del video. El tamaño del archivo de video parece aumentar si lo dejo grabando por más tiempo, así que creo que las manchas se escriben en el archivo pero de forma corrupta. Por cierto, estoy siguiendo este enfoque sin éxito.
Código de front-end:
const blob_reader_cam = new FileReader(); const handleDataAvailable = (e) => { if (!e.data || !e.data.size > 0) return; if (blob_reader_cam.readyState !== 1) blob_reader_cam.readAsArrayBuffer(e.data); else recordedCameraChunks.push(e.data); }; blob_reader_cam.addEventListener("load", (ev) => { window.electron.api.writeCameraFile(ev.currentTarget.result); if (recordedCameraChunks.length) { ev.currentTarget.readAsArrayBuffer(recordedCameraChunks.shift()); } }); const startCameraRecording = () => { if (!cameraStream) return; const options = { mimeType: "video/webm; codecs=vp9", videoBitsPerSecond: 2500000, }; mediaRecorder = new MediaRecorder(cameraStream, options); mediaRecorder.ondataavailable = handleDataAvailable; mediaRecorder.onstop = handleStop; mediaRecorder.start(1000); };Código js de electrones:
const storage_stream_cam = require("fs").createWriteStream(PATH_CAM); writeCameraFile(data) { storage_stream_cam.write(Buffer.from(data)); }