music-video-gen/flow-state/package.json
Dejvino e5484c9c38 Export: fall back to VP9/AV1 when H.264 unavailable and warn about software encoding
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>
2026-08-29 18:17:53 +02:00

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"
}
}