有什么方法可以使用 JavaScript 或 jQuery 检查 Motion JPEG 流是否打开/工作/发送图像?
检查定期更改的图像字节校验和。当然,这不是最好的解决方案,但可能会有所帮助。
<img id="video" src="http://192.168.1.60:81/stream" />
<script type="text/javascript">
setInterval(checkStream, 1000);
function getImageData() {
var c = document.createElement('canvas');
var img = document.getElementById('video');
c.width = img.width;
c.height = img.height;
var ctx = c.getContext('2d');
ctx.drawImage(img, 0, 0);
return ctx.getImageData(0, 0, c.width, c.height);
}
var checkSum = null;
function checkStream() {
var data = getImageData();
var newCheckSum = calcChecksum(data.data);
if (checkSum == null) {
checkSum = newCheckSum;
} else {
if (checkSum == newCheckSum) {
alert('stall');
} else {
checkSum = newCheckSum;
}
}
}
function calcChecksum(bytes) {
var sum = 0;
for (var index = 0; index < bytes.length; index++) {
sum ^= bytes[index];
}
return sum;
}