我如何使用 getUserMedia() API 和 Node.js 实时流式传输媒体?

How can I use the getUserMedia() API with Node.js to stream media in real time?

学习如何在我的网络浏览器中捕获视频和音频进行了简单的 google 搜索,得到了最简单的工作测试示例,它向我播放了我自己的视频和音频:

navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);

if (navigator.getUserMedia) {
  navigator.getUserMedia(

    // constraints
    {
      video: true,
      audio: true
    },

    // successCallback
    function(localMediaStream) {
      var video = document.querySelector('video');
      video.src = window.URL.createObjectURL(localMediaStream);
      // Do something with the video here, e.g. video.play()
    },

    // errorCallback
    function(err) {
      console.log("The following error occured: " + err);
    });
} else {
  console.log("getUserMedia not supported");
}
video {
  width: 100%;
  height: 420px;
  background-color: black;
}
<video autoplay></video>

但从那里开始,搜索条件变得棘手。搜索 Stream audio & video with Node.js 显示了将视频从服务器流式传输到客户端的教程,但是找不到我的问题,即如何将音频和视频从一个客户端流式传输到服务器,再到另一个客户端。 ]

我想了解执行此操作的基本步骤。在考虑使用额外的 API 来加速这个过程之前,我想以一种简单的方式真正理解它。我对 Socket.io 持开放态度,但这是一个常见的标准 API。

因此我的问题是:

如何以最简单的形式通过 Node.js 服务器将视频和音频数据从一个客户端流式传输到另一个客户端?

根据您的需要,最好的方法可能是使用 WebRTC,直接将音频和视频从一个客户端流式传输到另一个客户端,仅使用您的节点服务器通过发送一些强制信息来建立连接。

我可以在这里推荐一个开始使用 webRTC 的好教程: http://www.html5rocks.com/en/tutorials/webrtc/basics/