Захват видео с нескольких веб-камер с помощью getUserMedia
Я хотел бы захватить видео с нескольких веб-камер, подключенных к моему компьютеру. Достаточно просто использовать один веб-камеру, но как я могу получить видеопотоки из нескольких источников?
Можно ли выбрать, какую камеру использовать для одного потока?
navigator.getUserMedia ({
video: true
}, function (oMedia) {
var video = document.getElementById ('tVideo1');
video.src = window.URL.createObjectURL (oMedia);
});
Ответы
Ответ 1
Вам нужно будет использовать API getSources, который не так хорошо поддерживается. Я боюсь. Я думаю, что Chrome имеет версию, скрытую за флагом конфигурации, но кроме этого ничего, что вы можете сделать, кроме ожидания.
Не тот ответ, который вы хотели услышать, я знаю, извините.
Ответ 2
Я был заинтригован вашим вопросом, поэтому начал изучать "несколько видеосерверов".
Спустя пару часов, когда я почти собирался сдаться, я встретил это групповое обсуждение google.
Я обратился к вашему вопросу, чтобы узнать, была ли ваша цель тем, что потоки из всех веб-камер должны появляться одновременно или если вы хотите предоставить пользователю возможность выбрать канал камеры. Похоже, вы хотели, чтобы пользователь выбирал фид. Если это более поздний случай, то в ссылке выше, Vikas (в своем сообщении от 8/15/2013) описал способ достижения этого. Вам нужно включить флаг источников перечисления WebRTC, а затем использовать MediaStreamTrack.getSources, чтобы получить все источники и передать sourceId в getUserMedia, например navigator.getUserMedia({ "video": {optional: [{sourceId: "--- YOUR ID HERE- -" }]}}, fun, errfun);. И, похоже, один из пользователей смог заставить его работать успешно.
Вот исходный код, который я видел.
Эта информация будет специфичной для браузера Chrome или Firefox. Я просто подумал, что поделюсь этим, если вы еще не встретили этого, что-то, что может вам помочь. Я реализовал приложение, в котором несколько веб-камер питаются на одном экране, но это было проще, потому что это было настольное приложение.
Ответ 3
Вы можете одновременно захватить несколько видеопотоков, используя всплывающие окна. У меня только одна камера, поэтому я не могу проверить это решение. В Chrome я предполагаю, что пользователи могут щелкнуть значок камеры в строке адреса каждого дочернего окна, чтобы выбрать независимые источники. Firefox спрашивает, какую камеру использовать, когда он запрашивает разрешение на использование устройства, поэтому возможно даже использовать iframes вместо всплывающих окон с Firefox.