JavaScript
Open Channel and Connect WebSocket
var CHANNEL_SETTINGS = {
camera: {
width: 640,
height: 480,
quality: 70,
fps: 15,
send_image: "true",
compress: "false",
vlc_params: ['-I', 'dummy', '--ignore-config', '--network-caching=1000', '--directx-volume=0s']
},
face: {
detection: {
enable: "true",
tracking: "true",
max_size: 8192,
min_size: 40,
age: "true",
gender: "true",
express: "true"
},
identification: {
enable: "false",
group_id: "GROUPID",
mode: 2,
max_result: 3
}
},
human: {
detection: {
enable: "false",
tracking: "true",
max_size: 8192,
min_size: 40
}
}
};
var URL_CHANNEL_OPEN = 'http://localhost:8800/channel/open';
var STREAM_SOURCE = 'localcamera/0';
var WEBSOCKET_SERVER = 'ws://localhost:4662';
var apiChannelOpen = function(videoURL, settings, cb) {
var data = new FormData();
data.append('url', videoURL);
data.append('settings', JSON.stringify(settings));
var xmlhttp = new XMLHttpRequest();
xmlhttp.addEventListener("load", function() {
var responseData = this.responseText;
var json = JSON.parse(responseData);
cb(null, json);
}, false);
xmlhttp.open("POST", URL_CHANNEL_OPEN, false);
xmlhttp.send(data);
};
var websocketConnect = function(channel_id) {
var webSocket = new WebSocket(WEBSOCKET_SERVER);
var reader = new FileReader();
webSocket.binaryType = "arraybuffer";
webSocket.addEventListener("open", function(evt) {
var sendData = { channel_id: channel_id };
webSocket.send(JSON.stringify(sendData));
});
webSocket.addEventListener("message", function(evt) {
var bytes = new Uint8Array(evt.data);
var blob = new Blob([bytes.buffer]);
reader.onload = function(e) {
var json_parse = JSON.parse(e.target.result);
console.log(json_parse);
}
reader.readAsBinaryString(blob);
});
webSocket.addEventListener("close", function(evt) { console.log(evt) });
webSocket.addEventListener("error", function(evt) { console.log(evt) });
}
apiChannelOpen(STREAM_SOURCE, CHANNEL_SETTINGS, function(err, res) {
if (err) {
console.log(err);
} else {
var channel_id = res.channel_id;
websocketConnect(channel_id);
}
});