如何将网络摄像头数据流式传输到服务器?

时间:2015-01-07 15:10:51

标签: javascript python html

我正在寻找一种将网络摄像头数据从浏览器流式传输到网络服务器的方法。使用getUserMedia获取网络摄像头数据。一个常见的选择似乎是使用画布和计时器,以便将屏幕截图发送到服务器,但我想要一个合适的视频流。 WEBRTC似乎是另一种选择,但这可能有点超过顶部,而且没有太多的软件在服务器上运行(即非浏览器),说WEBRTC,并且具有Python的绑定。

也许我错过了更简单的事情。例如,可以使用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.');
}

1 个答案:

答案 0 :(得分:0)

看起来当前最好的解决方案确实是使用画布,定期从网络摄像头创建图像并通过websockets发送。