在视频标签中发送和接收Blob + Visual(WebRTC / Socket.IO / NodeJS)

时间:2017-09-15 20:59:15

标签: node.js video websocket socket.io webrtc

我正在使用WerbRTC + NodeJS + Socket.io创建视频聊天应用,但我在恢复视频和在视频HTML元素中显示时遇到问题。

客户端1,我使用下一个代码

捕获流blob
this.mediaRecorder = new MediaRecorder(this.stream, options);
this.mediaRecorder.ondataavailable = dataAvailable.bind(this);
this.mediaRecorder.start(10);
function dataAvailable(e){
   socket.emit('streaming', e.data);
};

服务器我只收到字节并重新发送到client2

this.streaming = function(data){
   for (var key in clients) {
       if(key != data.clientID){
          var client = clients[key];
              client.emit('streaming', data);
       };
   };
}.bind(this); socket.on('streaming', this.streaming);

以上都是有效的,但我的问题是,当我收到ArrayBuffer时,我如何处理它以在视频标签元素中再次显示流式传输,我尝试使用下一个代码,但不能正常工作。

客户端2

this.type = 'video/webm;codecs=vp9';
this.blob = new Blob([], { type:this.type});
this.receiveStream = function(data){
  var stream = data.stream;
  if(stream.byteLength <= 0) return;
  this.blob = new Blob([this.blob, new Uint8Array(stream)], { type:this.type});
  this.nodes.video.src = URL.createObjectURL(this.blob);
}

谢谢....

0 个答案:

没有答案