通过NodeJS发送MediaStream

Axe*_*xel 5 node.js socket.io webrtc

我有从getUserMedia返回的MediaStream对象,可以在我自己的屏幕上显示它。

问题是,我不知道如何使用socket.io通过PointJS从Point A通过NodeJS发送/管道/流/ * MediaStream到PointB。

我现在的代码是:

// Cámara
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true, video: true}, function(stream) {

    video.src = URL.createObjectURL(stream) || window.URL.createObjectURL(stream);

    webcamstream = stream;                  

}, onVideoFail);
} else {
   alert ('failed');
}

});

function onVideoFail(e) {
    console.log('webcam fail!', e);
};
Run Code Online (Sandbox Code Playgroud)

我需要使用NodeJS使此流不断发送给其他用户的方法

Dr.*_*ard 5

  • NodeJS音视频会议回答中的评论依然有效

  • 如果您要通过 socket.io 而不是对等连接发送流,在任何情况下都将是原始视频内容(字节)。你会失去:

    • 流媒体部分(RTP/RTCP),以及相应的丢包消除
    • 带宽适配
    • 加密 (DTLS)
    • 媒体引擎(抖动校正,...)

    通过 webRTC。

  • 为什么不在 node.js 中实现 SFU?使用 node.js/socket.io 进行信令(即初始握手),但也使用 node.js 作为对等连接端点,将媒体流中继/路由到(一个)其他(多个)对等方?您将拥有一个您似乎想要的中间服务器,以及 webRTC 的所有优势。

  • 另一种解决方案是使用 MCU,google webrtc+mcu,你会发现很多。