Short / TLDR: Я ищу способ показать живой поток MJPEG на HTTP-сервере с клиентом под управлением IE6 (Windows CE).
Справочная информация: Я не программист, я по профессии инженер-электрик. Причина такого странного запроса заключается в том, что у нас есть HMI-машина от RockWell AB под названием PanelView. По какой-то неосознанной причине эта машина работает под управлением Windows CE с IE6 (в 2019 году).
У меня Raspberry Pi с установленным NodeJS, и я могу захватывать поток MJPEG из FFMPEG или любого другого инструмента захвата видео.
Это простая проблема, если вам не нужно использовать браузер с начала 2000-х годов. Я использовал решение multipart/x-mixed-replace
, которое IE не поддерживает, и я использовал решение на основе Socket: https://github.com/phoboslab/jsmpeg, которое отлично работает во всех браузерах, кроме IE10 и менее. К сожалению, на стороне клиента jsmpeg.min.js
используются WebSocket
и Canvas
, которые не поддерживаются в IE6.
Я посмотрел на это решение, Папараццо: https://github.com/defvol/Paparazzo.js
Я не уверен, что это будет работать, и в настоящее время это спорный вопрос, поскольку клиентская сторона требует JQuery
:
демо / demo.html:
<!DOCTYPE html>
<html lang="en">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
// Active camera will refresh every 2 seconds
var TIMEOUT = 2000;
var refreshInterval = setInterval(function() {
var random = Math.floor(Math.random() * Math.pow(2, 31));
$('img#camera').attr('src', 'http://localhost:3000/camera?i=' + Math.random());
}, TIMEOUT);
});
</script>
</head>
<body>
<img src="" id="camera">
</body>
</html>
Основная проблема этих решений в том, что я недостаточно хорошо знаю JavaScript, чтобы вносить какие-либо изменения, кроме копирования / вставки. Мне не нужно, чтобы кто-то делал это для меня, но я хотел бы узнать мнение С.О., если это дурацкое поручение или нет.
Спасибо!