我想知道是否可以像以下https://apprtc.appspot.com/?r=91737737那样从客户端捕获视频输入,并将其显示在另一个上以便任何观众都可以看到它,我的问题是我我的第二台计算机上没有网络摄像头,我想使用 webrtc 接收视频。是否可以从一端捕获并在另一端捕获?也许如果这不可能,websockets 是最好的方法吗?
问问题
4796 次
1 回答
7
除了由于性能/带宽问题而导致的不完美之外,我认为没有理由不可能。
目前最受支持的 HTML5 解决方案我想它是使用 Chrome 上可用的getUserMedia (考虑getUserMedia.js以获得更广泛的相机输入支持,尽管我没有使用它)
设想
我们将有一个捕获器、一个广播流的服务器和接收最终流的观察者。
计划
捕获阶段
- 使用 getUserMedia 从摄像头获取数据
- 在画布上绘制它(也许你可以跳过这个)
- 使用 websockets(例如通过 socket.io 以获得更广泛的支持)将帧以图像数据的格式发布到服务器(例如 node.js)。
广播阶段
- 接收图像数据并广播给订阅的观察者
观看阶段
- 观察者将与服务器建立 websocket 连接
- 在从服务器接收到的每个新帧上,它必须将接收到的帧绘制到画布上
注意事项
- 您应该考虑到网络性能会影响播放。
- 您可以在客户端强制执行 FPS 速率以避免播放速度不稳定。
- 如果缓冲池适合您的情况以实现更流畅的播放,那就太好了。
未来
您可以在PeerConnection API和MediaSource API可用时使用它们,因为这就是制作它们的原因,尽管这可能会增加 CPU 使用率,具体取决于浏览器的性能。
于 2012-10-13T11:36:59.040 回答