Firefox on Linux exposes VideoEncoder but reports every avc1.* config as
unsupported (OpenH264 is decode-only), so pickVideoConfig returned null and
export threw "no supported H.264 configuration found". Probe VP9/AV1 families
after H.264 and pick the first profile that isConfigSupported and does not
reorder (B-frame) — same 12-frame ordering test. Map the chosen family to
mp4-muxer's video codec (avc/vp9/av1).
Before any rendering, probe the codec for the chosen preset and show a
modal when we fell off H.264 onto a software VP9/AV1 path — that's what the
user felt as "super slow". The modal names the codec, explains render vs
encode cost, suggests Chromium/Chrome for hardware H.264 (or 720p/lower
preset), and offers Continue anyway / Cancel (Esc/backdrop also cancel) plus
"Don't warn again this session". Injected pick is threaded through
Exporter.export({ videoPick }) and exportSegment so we don't probe twice.
Co-Authored-By: Claude <noreply@anthropic.com>
27 lines
726 B
JSON
27 lines
726 B
JSON
{
|
|
"name": "flow-state",
|
|
"version": "1.0.0",
|
|
"description": "Ambient/EDM music video generator with a deterministic render core",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"lint:scenes": "node tools/lint-scenes.js",
|
|
"test": "node --test test/*.test.js",
|
|
"new:scene": "node tools/new-scene.js",
|
|
"build:songs": "node tools/build-song-bank.js",
|
|
"check:songs": "node tools/build-song-bank.js --check",
|
|
"cast:census": "node tools/cast-census.js"
|
|
},
|
|
"license": "ISC",
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.62.1",
|
|
"vite": "^7.2.2"
|
|
},
|
|
"dependencies": {
|
|
"mp4-muxer": "^5.2.2",
|
|
"three": "^0.181.1"
|
|
}
|
|
}
|