39 lines
1.9 KiB
Markdown
39 lines
1.9 KiB
Markdown
# WBV2-P1128-000: ffmpeg.wasm movie codec module
|
||
|
||
- task: `WBV2-P1128-000`
|
||
- parent: `WBV2-P1127-000`
|
||
- status: `done`
|
||
- gap: `workflow:sequencer_movie_codec`
|
||
- ownerFamily: `MEDIA`
|
||
- targetImplementationClass: `LOCAL_BOUNDED`
|
||
|
||
## 目标
|
||
|
||
使用本地 ffmpeg.wasm Worker 作为 Chromium HTML media 解码失败时的 MOVIE probe/proxy fallback;核心 JS/WASM 同源懒加载,输入和输出均 hash-bound。
|
||
|
||
## 输入与范围
|
||
|
||
- Dependencies: `web/package.json`, `web/package-lock.json`
|
||
- Protocol: `web/protocol/sequencer.ts`
|
||
- Runtime: `web/app/src/sequencer/SequencerCodecProbe.ts`, `web/app/src/sequencer/FFmpegMovieProbe.ts`, `web/app/src/sequencer/ffmpeg-movie-probe.worker.ts`, `web/app/src/sequencer/SequencerMediaProxyCache.ts`
|
||
- Local core: `web/app/src/vendor/ffmpeg/ffmpeg-core.js`, `web/app/src/vendor/ffmpeg/ffmpeg-core.wasm`, `web/app/public/vendor/ffmpeg/ffmpeg-core.js`, `web/app/public/vendor/ffmpeg/ffmpeg-core.wasm`
|
||
- Upstream source: `third_party/ffmpeg.wasm-source-f876f907c7e9b9bf51d4ed0b913a855a63ae63fc.tar.gz`
|
||
- Production test: `web/tests/e2e/ffmpeg-movie-probe-production.spec.ts`
|
||
|
||
## 验收
|
||
|
||
```bash
|
||
npm --prefix web run typecheck
|
||
npm --prefix web run build
|
||
WEB_TEST_PORT=5342 npm --prefix web run test:e2e -- --workers=1 tests/e2e/ffmpeg-movie-probe-production.spec.ts
|
||
```
|
||
|
||
必须记录原生 HTML media 失败后的 ffmpeg.wasm 正例、metadata/frame 输出、损坏/identity/runtime 负例、AbortSignal cancellation、Worker termination、cache manifest identity 和 Chromium。历史 M11 MOVIE golden 不重写;H.264/浏览器解码差异留在新 capability receipt。
|
||
|
||
## 交付与回滚
|
||
|
||
- Receipt: `tests/golden/WBV2-P1128-000/module-receipt.json`
|
||
- Manifest: `tests/golden/WBV2-P1128-000/manifest.json`
|
||
- Status: `docs/status/WBV2-P1128-000.md`
|
||
- 回滚:恢复 P1127 manifest 为 queue parent,保留 ffmpeg 源码下载和依赖变更供后续复用。
|