NodeJS 从 webRTC 服务器上的网络摄像头获取视频源

mr.*_*ris 5 javascript video-streaming node.js webrtc

我想从 NodeJS 服务器上的网络摄像头获取视频源,以通过 WebRTC 将视频流式传输到客户端。有很多例子如何仅针对浏览器(客户端)实现这一点,但我仍然找不到任何可靠的 NodeJS(服务器端)解决方案。

在示例中,这是客户端获取视频源的基本脚本:

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
var constraints = {audio: false, video: true};
var video = document.querySelector("video");
function successCallback(stream) {
  // stream available to console so you could inspect it and see what this object looks like
  window.stream = stream;
  if (window.URL) {
    video.src = window.URL.createObjectURL(stream);
  } else {
    video.src = stream;
  }
  video.play();
}
function errorCallback(error) {
  console.log("navigator.getUserMedia error: ", error);
}
navigator.getUserMedia(constraints, successCallback, errorCallback);
Run Code Online (Sandbox Code Playgroud)
<div id='video-space'>
  <video autoplay></video>
</div>
Run Code Online (Sandbox Code Playgroud)

我想有一些简单的方法可以实现同样的事情,但仅限于服务器端的 NodeJS,因为它基于 V8 引擎,并且可能具有与浏览器中相同的硬件 api。如果我错了,请纠正我。

我已经检查了多个链接(simple-peerwebcam-http-streaminglivecamvideo Stream等),但它们都没有解决我的问题,我很困惑。

那么,NodeJS 是否有一些本机 api 来获取视频源,以便通过服务器上的 WebRTC 进行流式传输,就像在浏览器中一样,还是我应该使用一些库/包来实现此目的?

目标是将 USB 网络摄像头插入(即)Raspberry Pi 并将视频从 NodeJS 服务器流式传输到客户端。

我真的不想为此目的在服务器上使用浏览器。

任何建议将不胜感激,谢谢!