Naja, das ganze ist eine letztlich asynchrone Kommunikation zwischen JS und Py:
Codeauszüge:
Code: Alles auswählen
# @socketio.on('connect')
def on_connect(vsnum):
videosources = get_vs(type="list", vsnum=vsnum)
c = IpCamera(dict(videosources)[int(vsnum)]['url']);
buffer = c.get_frame()
socketio.emit('sendpic', { 'vsnum': vsnum, 'buffer': buffer, 'status': 0 })
# eventlet.sleep(0.05)
return 'ok'
[codebox=javascript file=Unbenannt.js]
$(function() {
var socket = io('
http://127.0.0.1:80');
socket.on('connect', function() {
/*$('div.videoframe canvas').each(function() {
socket.emit('connect', { data: this.id.substr(6,3) });
});*/
});
socket.on('sendpic', function(buffer) {
if (buffer) {
var canvas = document.getElementById('frame-' + buffer['vsnum']);
if (canvas != null) {
var ctx = canvas.getContext('2d');
var img = new Image();
img.src = 'data:image/jpeg;base64,' + _arrayBufferToBase64(buffer['buffer']);
ctx.drawImage(img,0,0,img.width,img.height,0,0,640,360);
}
}
});
});
[/code]