From f1d19ba32d068d3bf74ddb28ad2f73be95065a59 Mon Sep 17 00:00:00 2001 From: Brandyn / Techy Date: Sat, 31 Oct 2026 16:26:44 -0500 Subject: [PATCH] Plan: off-site gap filling option (home NVENC / Spot GPU) and SYS-3 availability note Co-Authored-By: Claude Fable 5.1 --- CommunityDiscordMedia.md | 11 +++++++++++ README.md | 2 ++ STATUS.md | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CommunityDiscordMedia.md b/CommunityDiscordMedia.md index 70f9600..7f7bc2b 100644 --- a/CommunityDiscordMedia.md +++ b/CommunityDiscordMedia.md @@ -357,6 +357,17 @@ Checklist if adopted: - [ ] per-user clips volume in `copyparty.conf` once forward-auth is live (Phase 5) ### 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. 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 diff --git a/README.md b/README.md index e5c0be3..4ac726f 100644 --- a/README.md +++ b/README.md @@ -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 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 diff --git a/STATUS.md b/STATUS.md index 5b492a0..b906490 100644 --- a/STATUS.md +++ b/STATUS.md @@ -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. 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. -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 - **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.