Plan: off-site gap filling option (home NVENC / Spot GPU) and SYS-3 availability note

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-10-31 16:26:44 -05:00
parent 9dc81ae5aa
commit f1d19ba32d
3 changed files with 14 additions and 1 deletions

View File

@@ -357,6 +357,17 @@ Checklist if adopted:
- [ ] per-user clips volume in `copyparty.conf` once forward-auth is live (Phase 5) - [ ] per-user clips volume in `copyparty.conf` once forward-auth is live (Phase 5)
### Later — when it hurts ### Later — when it hurts
- [ ] **Off-site gap filling** (instead of burning the SYS-1's CPU): streams whose sidecar reports
`gaps.total_missing_ms` ≥ threshold are re-encoded elsewhere with a hardware encoder.
- the sweep keeps the raw recording in `.src/` and the sidecar flags it (`needs_fill: true`)
- a nightly job on the home box (RTX 2080 Ti, NVENC) or a Spot GPU instance pulls flagged raws over
SFTP, re-encodes to CFR with duplicated frames (same editing standard, `tmcd` + `creation_time`
carried from the sidecar), pushes the result back over the published file, clears the flag
- Jellyfin keeps the same path → item identity and watched state survive; the plugin re-reads metadata
- until then: `FILL_GAPS_MS` stays off; players hold frames across gaps, editors see the gap list
- [ ] **SYS-3 (E-2288G, Quick Sync)** — the 2×6 TB disk option is currently unavailable; re-check and swap when
it returns. Then: Jellyfin transcoding on, sweep re-encodes in minutes, `FILL_GAPS_MS` can simply be on.
- [ ] **SYS-3 (E-2288G)**: Quick Sync → Jellyfin transcoding on, sweep re-encodes in minutes. - [ ] **SYS-3 (E-2288G)**: Quick Sync → Jellyfin transcoding on, sweep re-encodes in minutes.
Swap, not redesign: same compose, same `/srv` layout; restore `/srv/appdata` + `/srv/media`. Swap, not redesign: same compose, same `/srv` layout; restore `/srv/appdata` + `/srv/media`.
- [ ] home archive puller (`home/rclone-archive.sh`) on the home box, nightly cron - [ ] home archive puller (`home/rclone-archive.sh`) on the home box, nightly cron

View File

@@ -330,6 +330,8 @@ Turn it on (threshold 1 s) / off, on the server:
Check: `systemctl show normalize-sweep -p Environment`. Takes effect on the next sweep run; already-published Check: `systemctl show normalize-sweep -p Environment`. Takes effect on the next sweep run; already-published
files are not revisited. Clips are always converted to CFR regardless. files are not revisited. Clips are always converted to CFR regardless.
Planned alternative: re-encode flagged streams off-site on a machine with a hardware encoder (home box NVENC or a
Spot GPU) and push the result back — see CommunityDiscordMedia.md → Later.
## Layout on the server ## Layout on the server

View File

@@ -76,7 +76,7 @@ Source of truth: this repo, `techy/Media-Server-Setup` on the stack's own Gitea
8. Plugin repository served by Caddy so Jellyfin updates from its catalog. 8. Plugin repository served by Caddy so Jellyfin updates from its catalog.
9. Clip submissions (belongs to the bot). Bot code from the other dev. 9. Clip submissions (belongs to the bot). Bot code from the other dev.
10. Authentik blueprint from `.env` (Discord source, groups, policies, provider) for reproducible installs. 10. Authentik blueprint from `.env` (Discord source, groups, policies, provider) for reproducible installs.
11. SYS-3 when transcoding or sweep speed hurts. 11. SYS-3 when transcoding or sweep speed hurts (2×6 TB option currently unavailable; watching for it). Interim option documented: off-site gap filling on the home NVENC box.
## Verified behaviours worth remembering ## Verified behaviours worth remembering
- **Never scp generated configs** (`mediamtx.yml`, `copyparty.conf`, `Caddyfile`, `dump-users.txt`, `.env`): a template copy wiped all streamers once. They are gitignored now; `*.example.*` are reference only. - **Never scp generated configs** (`mediamtx.yml`, `copyparty.conf`, `Caddyfile`, `dump-users.txt`, `.env`): a template copy wiped all streamers once. They are gitignored now; `*.example.*` are reference only.