使用getUserMedia从多个网络摄像头捕获视频

use*_*962 10 javascript webcam html5 getusermedia

我想从连接到我的电脑的多个网络摄像头捕获视频.使用一个网络摄像头很容易,但我如何从多个来源获取视频流?是否可以选择将哪个摄像头用于一个流?

     navigator.getUserMedia ({
         video: true 
     }, function (oMedia) {
         var video = document.getElementById ('tVideo1'); 
         video.src = window.URL.createObjectURL (oMedia); 
     }); 
Run Code Online (Sandbox Code Playgroud)

sko*_*lte 5

我对你的问题很感兴趣,所以我开始研究“getusermedia 多摄像头”。

几个小时后,当我几乎要放弃时,我遇到了这个谷歌小组讨论

我回顾了你的问题,看看你的目标是来自所有网络摄像头的流应该同时出现,还是你想向用户展示一个选择相机源的选项。您似乎希望用户选择提要。如果是后一种情况,那么在上面的链接中,Vikas(在他的 8/15/2013 消息中)描述了一种实现此目的的方法。您需要启用 WebRTC 枚举源标志,然后使用 MediaStreamTrack.getSources 获取所有源并将 sourceId 传递给 getUserMedia,例如 navigator.getUserMedia({ "video": {optional: [{sourceId: "---YOUR ID HERE- --"}]}}, 乐趣, errfun);。似乎其中一位用户能够使其成功运行。

是我看到的源代码。此信息特定于 Chrome Canary 或 Firefox。我只是想我会分享它,以防你还没有遇到过这个,这可能对你有帮助。我已经实现了一个应用程序,其中多个网络摄像头在单个屏幕上提供,但它更简单,因为它是一个桌面应用程序。


Ian*_*lin 3

您将需要使用 getSources API,恐怕它没有得到很好的支持。我认为Chrome 有一个隐藏在配置标志后面的可用版本,但除此之外,除了等待之外,你别无选择。

我知道这不是你想听到的答案,抱歉。