feat: switch live preview from WebSocket to MJPEG streaming

- Pipeline writes JPEG to /tmp/feedmill_preview_{job_id}.jpg (atomic)
- Flask serves MJPEG stream at /api/preview/{job_id}
- Frontend uses native <img src> MJPEG — zero JS needed
- Removed flask-socketio, eventlet, socket.io CDN dependencies
- 33% less bandwidth per frame, native browser decode
- Same proven approach as original karung-counting project
This commit is contained in:
jetson committed 2026-09-22 10:09:22 +07:00
1 parent 1e28eb49e2
commit a5566f3b99
8 files changed
+239 -100

No files matched your search

-1
View File
@@ -35,6 +35,5 @@
</div>
</footer>
{% block scripts %}{% endblock %}
<script src="https://cdn.socket.io/4.7.5/socket.io.min.js"></script>
</body>
</html>