3

我想知道是否可以像以下https://apprtc.appspot.com/?r=91737737那样从客户端捕获视频输入,并将其显示在另一个上以便任何观众都可以看到它,我的问题是我我的第二台计算机上没有网络摄像头,我想使用 webrtc 接收视频。是否可以从一端捕获并在另一端捕获?也许如果这不可能,websockets 是最好的方法吗?

4

1 回答 1

7

除了由于性能/带宽问题而导致的不完美之外,我认为没有理由不可能。

目前最受支持的 HTML5 解决方案我想它是使用 Chrome 上可用的getUserMedia 考虑getUserMedia.js获得更广泛的相机输入支持,尽管我没有使用它)

设想

我们将有一个捕获器、一个广播流的服务器和接收最终流的观察者。

计划

捕获阶段

  1. 使用 getUserMedia 从摄像头获取数据
  2. 在画布上绘制它(也许你可以跳过这个)
  3. 使用 websockets(例如通过 socket.io 以获得更广泛的支持)将帧以图像数据的格式发布到服务器(例如 node.js)。

广播阶段

  1. 接收图像数据并广播给订阅的观察者

观看阶段

  1. 观察者将与服务器建立 websocket 连接
  2. 在从服务器接收到的每个新帧上,它必须将接收到的帧绘制到画布上

注意事项

  1. 您应该考虑到网络性能会影响播放。
  2. 您可以在客户端强制执行 FPS 速率以避免播放速度不稳定。
  3. 如果缓冲池适合您的情况以实现更流畅的播放,那就太好了。

未来

您可以在PeerConnection APIMediaSource API可用时使用它们,因为这就是制作它们的原因,尽管这可能会增加 CPU 使用率,具体取决于浏览器的性能。

于 2012-10-13T11:36:59.040 回答