我正在处理MediaStreamRecorder blob,该blob首先传递到我的NodeJS服务器,然后将其上传到AWS S3。 当我从javascript文件发送blob时,它以Buffer的形式到达node js服务器。我想再次将其更改为blob(具有大小,类型和二进制数据)。
我已经在Google上进行了大量搜索来找到解决方案,但是我才知道节点js在浏览器中具有与Blob相同的缓冲区,但是当我将Blob直接上传到AWS时,视频运行良好,但是当我上传数组缓冲区时到S3,则显示损坏的文件。
我的JS文件将数据发送到S3的
var mimeType = 'video/webm';
var fileExtension = 'webm';
if (isMimeTypeSupported('video/webm\;codecs=h264')) {
mimeType = 'video/mp4';
fileExtension = 'mp4';
}
var file = new File([recorder ? recorder.blob : ''], getFileName(fileExtension), {
type: mimeType
});
我的JS文件将数据发送给我的节点服务器
function client(blob){
socket.send(blob)
socket.addEventListener('message', event => {
console.log(`Message from server: `,event);
});
}
我的节点服务器为
server.on('connection', socket => {
console.log("Commention Eslablished");
socket.on('message', message => {
console.log(message);
bigBlob.push(message);
});
socket.send('blob recived');
socket.on('close', message => {
console.log("close with");
});
});
我想从节点服务器上传与从浏览器上传相同的数据