如何使用带有Node.js的getUserMedia()API实时流媒体?

时间:2015-03-24 00:52:51

标签: javascript node.js audio video

学习如何在我的网络浏览器中捕获视频和音频需要进行简单的谷歌搜索,从而得到一个最简单的工作测试示例,它将我自己的视频和音频播放给我:

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服务器将视频和音频数据从一个客户端传输到另一个客户端?

1 个答案:

答案 0 :(得分:1)

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

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