main
|
Last change
on this file since adb6291 was ecbfa41, checked in by roboburr <roboburr@…>, 2 months ago |
|
feat(video-cover): add VideoCoverService + node-webpmux (animated WebP / video -> muted loop MP4)
Foundation for Safari-smooth animated covers. node-webpmux (pure JS/WASM, NO native deps ->
installs everywhere, never breaks npm ci) decodes an animated WebP into RGBA frames; the bundled
ffmpeg-static encodes a muted H.264 loop MP4 + JPG poster. A real uploaded video goes straight
through ffmpeg. Best-effort: returns null -> caller keeps the still image. Pipeline verified
(animated webp -> valid 240x240 H.264 mp4 + poster).
- package.json / package-lock.json — node-webpmux 3.2.1
- src/services/VideoCoverService.js — isAnimatedWebp / animatedWebpToVideo / videoToLoop
Co-Authored-By: Claude <noreply@…>
|
-
Property mode
set to
100644
|
|
File size:
1.1 KB
|
| Line | |
|---|
| 1 | {
|
|---|
| 2 | "name": "klonkt",
|
|---|
| 3 | "version": "1.0.0",
|
|---|
| 4 | "description": "Klonkt — self-hosted multi-site music & blog platform (solo, hub or circles). Node + SQLite + htmx.",
|
|---|
| 5 | "license": "AGPL-3.0-or-later",
|
|---|
| 6 | "type": "module",
|
|---|
| 7 | "main": "src/server.js",
|
|---|
| 8 | "scripts": {
|
|---|
| 9 | "start": "node src/server.js",
|
|---|
| 10 | "dev": "node --watch src/server.js",
|
|---|
| 11 | "test": "node --test",
|
|---|
| 12 | "migrate": "node src/db/migrate.js",
|
|---|
| 13 | "reset-admin": "node scripts/reset-admin.mjs",
|
|---|
| 14 | "backfill:durations": "node scripts/backfill-durations.mjs"
|
|---|
| 15 | },
|
|---|
| 16 | "dependencies": {
|
|---|
| 17 | "@resvg/resvg-js": "^2.6.2",
|
|---|
| 18 | "bcryptjs": "^2.4.3",
|
|---|
| 19 | "better-sqlite3": "^11.3.0",
|
|---|
| 20 | "body-parser": "^1.20.2",
|
|---|
| 21 | "dotenv": "^16.3.1",
|
|---|
| 22 | "ejs": "^3.1.9",
|
|---|
| 23 | "express": "^4.18.2",
|
|---|
| 24 | "express-rate-limit": "^7.4.1",
|
|---|
| 25 | "express-session": "^1.17.3",
|
|---|
| 26 | "ffmpeg-static": "^5.2.0",
|
|---|
| 27 | "fluent-ffmpeg": "^2.1.3",
|
|---|
| 28 | "helmet": "^7.1.0",
|
|---|
| 29 | "htmx.org": "1.9.12",
|
|---|
| 30 | "marked": "^11.1.1",
|
|---|
| 31 | "multer": "^1.4.5-lts.1",
|
|---|
| 32 | "node-webpmux": "^3.2.1",
|
|---|
| 33 | "nodemailer": "^6.9.15",
|
|---|
| 34 | "sanitize-html": "^2.17.3",
|
|---|
| 35 | "uuid": "^9.0.1"
|
|---|
| 36 | },
|
|---|
| 37 | "engines": {
|
|---|
| 38 | "node": ">=20"
|
|---|
| 39 | }
|
|---|
| 40 | }
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.