【发布时间】:2020-08-15 08:44:54
【问题描述】:
我正在尝试将网络摄像头或音频流上传到 Nodejs 并将其保存到磁盘。目标是在数据可用时立即将数据块发送到服务器。我从 gerUserMedia 中获取了流,设置了 mediaRecorder,当数据可用时,我将 blob 转换为 arrayBuffer 并将其发送到服务器。我知道代码是错误的,因为我不确定正确的方法是什么,但是当数据发送到服务器时,会保存一个文件,但只有 1kb 的文件,它应该是一个大的视频文件。我该怎么做?
//Client Side
recorder.ondataavailable = (event) => {
const reader = new FileReader();
reader.onload = (event) =>{
recordedChunks.push(event.data);
sendDataToServer(event.target.result)
}
reader.readAsArrayBuffer(event.data)
}
reader.readAsArrayBuffer(event.data)
//Server-Side
app.post('/media', function (req, res, next) {
try {
const { data } = req.body;
const dataBuffer = new Buffer(data, 'base64');
const fileStream = fs.createWriteStream('video.webm');
fileStream.write(dataBuffer);
} catch (error) {
console.log(error);
}
})
【问题讨论】:
标签: javascript node.js express webrtc getusermedia