通过NodeJS发送MediaStream

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

问题是,我不知道如何从Point A通过NodeJS使用socket.io发送/pipe道/stream/ * MediaStream到Point B.

我现在的代码是:

// 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); }; 

我需要使用NodeJS将这个stream不断发送给其他用户。

  • 在与NodeJS的audio和video会议的答案中所做的评论仍然有效

  • 如果你是通过socket.io发送stream而不是对等连接,那么在任何情况下,这都是原始的video内容(字节)。 你会输:

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

    通过webRTC。

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

  • 另一个解决scheme是使用MCU,谷歌webrtc +单片机,你会发现很多。