feat: use MediaRecorder + canvas.captureStream() for MP4/WebM output

Recording now uses the browser's hardware video encoder:
- JPEG frames drawn to offscreen canvas → canvas.captureStream(30fps)
- MediaRecorder encodes to MP4 (preferred) or WebM (fallback)
- Stop triggers download of standard video file

Playback uses native <video> element — no custom parsing needed.
Massively simplified: removed packFrames/unpackFrames, no more custom
binary format.
This commit is contained in:
2026-08-01 20:29:32 +08:00
parent d2ecb1a4ed
commit 9cb9045f87
9 changed files with 176 additions and 260 deletions
+2 -2
View File
@@ -5,8 +5,8 @@
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MJPEG Stream Viewer</title>
<script type="module" crossorigin src="/assets/index-CHMLXxlv.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-Deon0U_J.css">
<script type="module" crossorigin src="/assets/index-aL8cGzGF.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-C8d4acis.css">
</head>
<body>
<div id="app"></div>