Skip to content

JWVR AI Video Pipeline, Phase 1 Decide-in-5

URL: https://mkdocs.justinsforge.com/memory/investigations/jwvr-pipeline-prep-2026-05-04/

Date: 2026-05-04 Source handoff: justinwieb-vr-ai-video-pipeline-2026-04-29 Goal: Lock the 6 open Phase 1 questions so a worker can start building without blockers.


TL;DR (the 6 calls, one line each)

# Question Recommendation
1 Whisper inference target Finn GPU via faster-whisper if a usable iGPU/discrete card is present; else Console CPU large-v3 overnight + medium.en for hot-path
2 Proxy spec DNxHR LB .mov 1080p (Premiere-on-Windows native, fast, small)
3 Notion-to-folder script sync Pull, forge polls a tagged "Ready to shoot" Notion view every 5 min
4 Folder location Finn NFS canonical, Sol/Vector mount as network drive; no local-first sync mess
5 Existing Windows scaffold script Have Justin paste it into a Telegram capture, port to forge_video_scaffold.py (single source)
6 Sample project for Phase 1 test Justin picks the next real upcoming VR video, must be a talking-head + game-footage piece

Q1: Whisper inference target

Options: - A. Finn GPU (local)faster-whisper large-v3 on CUDA. 5-10x realtime if Finn has a real GPU. Zero cloud cost, footage never leaves the LAN (matches "don't put cloud LLMs in the hot path for raw footage"). - B. Console CPUfaster-whisper medium.en int8. ~1x realtime. No GPU required. Fine for overnight batch, painful for hot-path interactivity. - C. Cloud API — OpenAI Whisper API or Groq Distil-Whisper. Fastest wallclock (15s for 10min). $0.006/min. Violates the "footage stays local" doctrine for raw clips.

Recommendation: A if Finn has a usable GPU, otherwise hybrid B: medium.en on Console for the immediate ingest pass (good enough for cuts.json), then schedule large-v3 overnight to refine captions. Cloud is the fallback only.

Info Justin still needs: confirm what GPU is in Finn. SSH to finn from Console refused this session (192.168.86.67:22 connection refused at 16:11 CDT, 2026-05-04, possibly post-BIOS-trip residue). Justin: run lspci | grep -iE 'vga|3d' on Finn directly, or check Proxmox host hardware page. If Finn has the iGPU only (Intel UHD/xe), faster-whisper won't accelerate; treat as option B.


Q2: Proxy spec

Options: - A. DNxHR LB .mov, 1080p — Avid codec, native fast in Premiere on Windows, ~36 Mbps, small files. Justin's primary edit machine is Vector (Win11) or Sol (mac); both handle DNxHR fine. - B. ProRes Proxy .mov, 1080p — Apple codec, butter-smooth on Sol, slightly heavier on Windows decode. ~45 Mbps. - C. H.264 mp4, 1080p, 8 Mbps — tiny files, weak scrub performance, Premiere chokes on long-GOP for editing.

Recommendation: A. DNxHR LB. Premiere docs explicitly recommend it on Windows; ffmpeg encodes it fast (-c:v dnxhd -profile:v dnxhr_lb). Files 4-5x smaller than ProRes Proxy, scrubs identically in Premiere.

Info Justin still needs: which machine does the editing? If primarily Sol/macOS, switch to ProRes Proxy. If Vector/Windows, DNxHR LB. (Handoff implies Premiere lives on Windows PC scaffold flow.)


Q3: Notion-to-folder script sync

Options: - A. Pull (forge polls) — Cron every 5 min hits a tagged Notion DB view ("Status = Ready to shoot"). Forge creates the folder + copies script.md. Idempotent, simple, follows existing forge patterns (Hevy poller, Garmin poller). - B. Push (Notion webhook → forge) — Notion automation hits a forge endpoint when a row flips status. Faster, but Notion automations are paid-tier and webhooks are flaky on free. - C. Manual /new-video only — Justin types a Telegram command; no Notion coupling. Simpler but loses script-already-written-in-Notion link.

Recommendation: A + C combined. Pull pattern as the default automatic path (matches how every other forge poller works); /new-video <name> Telegram command as the manual override when there's no Notion row yet.

Info Justin still needs: which Notion DB holds scripts? Confirm the property he wants to use as the trigger (e.g., a "Pipeline Status" select with "Ready to shoot"). Likely lives in JWVR Projects DB from the Notion scaffold handoff, needs verification.


Q4: Folder location

Options: - A. Finn NFS, canonical/mnt/storage/justinwieb-vr/ on Finn, NFS-exported to Sol/Vector. Single source of truth. Watch-folder service runs on Finn. Edit machines mount it as a network share. A7iv files are heavy; Finn 24TB HDD is the right home. - B. Local-first on Sol with Finn backup — Sol holds working copies, rsync to Finn nightly. Faster local I/O on Sol's NVMe, but creates two-way sync hell, watch-folder triggers fragment. - C. Google Drive — already there for cross-device. Way too slow for raw A7iv ingest, syncs choke.

Recommendation: A. Finn NFS canonical. This is exactly the storage policy: active video work on Finn 8TB NVMe (or HDD for cold), edit machines mount over NFS. Watch-folder lives on Finn. Premiere over NFS is fine for proxies; high-bitrate originals only get touched at export.

Info Justin still needs: confirm NFS export already exists for this path or whether we need to create one. Vector/Sol need SMB or NFS client wired. Existing Plex / arr stacks already NFS-mount Finn so the pattern is proven.


Q5: Existing Windows scaffold script

Options: - A. Port it directly — Justin pastes the .ps1/.bat into a Telegram message; we translate to forge_video_scaffold.py. Preserves the exact subfolder layout he's used to. - B. Reinvent from the reference structure — Use the 2026-04-07_Quest-Ad-3-Traitors example layout in the handoff. Simpler if his old script is gone or messy. - C. Both, for now — Keep the Windows script as-is for Vector workflows; add forge /new-video for Telegram/Console. Risks drift.

Recommendation: A. Port it. Single source of truth (Section 9.5 of doctrine, no two scripts doing the same thing). Once forge_video_scaffold.py exists, retire the Windows script. Mobile-first via Telegram becomes the default; Vector calls the same Python via SSH or a wrapper .bat.

Info Justin still needs: Justin to either paste the script content here or confirm "use the reference layout, don't bother porting." If he can't find the old one, default to B with the layout block from the handoff (lines 184-199).


Q6: Sample project for Phase 1 test

Recommendation: The next real upcoming VR video. Synthetic test footage hides edge cases (false starts, varied audio levels, multi-camera mixing, game-capture overlays). Pick something with: - Talking-head A7iv via OBS (the 80% case) - A written script in Notion or Drive (so Q3 sync gets exercised) - At least one game-footage section (so layout-cue detection has signal) - Total duration 5 to 15 min (long enough for filler-word pass to be meaningful, short enough to iterate fast)

Info Justin still needs: pick the project. Reference example is 2026-04-07_Quest-Ad-3-Traitors; what's the next analogue?


Environment audit (live as of 2026-05-04 16:11 CDT)

Check Result Notes
Windows scaffold script discoverable from Console No No file under forge/scripts/ matching *scaffold*video* or *new_video*. Lives on Vector only; needs paste-port.
brands/justinwieb-vr/ on forge Empty (only README.md per git status) Phase 1 will populate this.
JustinWieb-VR/ content folder Not on Console Justin's actual project tree lives on Finn / Sol / Vector. Console is dev VM only, won't host footage.
Finn GPU verification Unknown, SSH refused ssh finn (192.168.86.67:22) connection refused at 16:11. Could be transient; possibly post-2026-04-30 BIOS trip aftereffect. Justin: verify Finn is up + SSH listening.
Sol disk space Unknown, SSH timed out ssh sol timed out from Console. Sol may be off the tailnet or asleep. Justin: confirm Sol awake + tailscale up if planning Sol-side proxies.
Forge primitives ready Yes Notion API client, dispatcher, cron, /save-to-drive, Telegram bots, forge_text_sanitize, /recall all present per MEMORY.md.
ffmpeg on Console Likely yes (used by /watchyoutube) Confirm ffmpeg -version before Phase 1 build.
Whisper / faster-whisper installed Not yet New build, will go in forge/scripts/integrations/.venv/.

What unblocks the build session

Justin answers these 6 in chat (a single paragraph is enough):

  1. Finn GPU model + is SSH reachable right now?
  2. Edit machine: Vector (Windows) or Sol (Mac)?
  3. Notion DB id + status property name for the script trigger
  4. NFS path on Finn for JustinWieb-VR/ (or "create it fresh at /mnt/storage/justinwieb-vr/")
  5. Paste the old Windows scaffold script, or say "use the reference layout"
  6. Project slug for the live Phase 1 test

Once those land, the build worker can ship forge_video_scaffold.py + watch-folder + proxy + transcription + alignment + XML in a single focused session.