如何将网络摄像头数据流式传输到服务器?
Howto stream webcam data to a server?
我正在寻找一种将网络摄像头数据从浏览器传输到网络服务器的方法。使用getUserMedia
获取网络摄像头数据。一个常见的选择似乎是使用 canvas 和一个计时器来将屏幕截图发送到服务器,但我想要一个合适的视频流。 WEBRTC 似乎是另一种选择,但这可能有点过头了,而且没有太多在服务器(即非浏览器)上运行、使用 WEBRTC 并具有 Python 绑定的软件。 =2=]
也许我错过了更简单的抽样。例如,视频流可以使用 Websockets 进行流式传输吗?
'use strict';
var errorCallback = function(e) {
console.log('Rejected!', e);
};
var successCallback = function(stream) {
console.log('Got Video.');
var video = document.querySelector('video');
video.src = window.URL.createObjectURL(stream);
// ???
// Stream data to server
video.play();
};
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
var hdConstraints = {
video: {
mandatory: {
minWidth: 1280,
minHeight: 720,
}
},
audio: false,
};
if (navigator.getUserMedia) {
navigator.getUserMedia(hdConstraints, successCallback, errorCallback);
}
else {
console.log('No getUserMedia available.');
}
看起来目前最好的解决方案确实是使用 canvas,定期从网络摄像头创建图像并通过 websockets 发送。
我正在寻找一种将网络摄像头数据从浏览器传输到网络服务器的方法。使用getUserMedia
获取网络摄像头数据。一个常见的选择似乎是使用 canvas 和一个计时器来将屏幕截图发送到服务器,但我想要一个合适的视频流。 WEBRTC 似乎是另一种选择,但这可能有点过头了,而且没有太多在服务器(即非浏览器)上运行、使用 WEBRTC 并具有 Python 绑定的软件。 =2=]
也许我错过了更简单的抽样。例如,视频流可以使用 Websockets 进行流式传输吗?
'use strict';
var errorCallback = function(e) {
console.log('Rejected!', e);
};
var successCallback = function(stream) {
console.log('Got Video.');
var video = document.querySelector('video');
video.src = window.URL.createObjectURL(stream);
// ???
// Stream data to server
video.play();
};
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
var hdConstraints = {
video: {
mandatory: {
minWidth: 1280,
minHeight: 720,
}
},
audio: false,
};
if (navigator.getUserMedia) {
navigator.getUserMedia(hdConstraints, successCallback, errorCallback);
}
else {
console.log('No getUserMedia available.');
}
看起来目前最好的解决方案确实是使用 canvas,定期从网络摄像头创建图像并通过 websockets 发送。