Commit Graph
18 Commits
Author SHA1 Message Date
Outis 83cb7145cb Merge pull request #3 from outis1one/claude/seasonal-sunrise-montage-nn268
Add aligned panorama preview and finalised stitch script
2026-04-18 07:12:10 -04:00
Claude df26e1d8e3 Add aligned panorama preview and finalised stitch script
Phase-correlation on the treeline/horizon band (rows 70-90%) found:
  tx = -3324 px   (north is 3324 px to the left of sunrise)
  ty = -85 px     (north camera is 85 px higher — slight tilt difference)
  overlap = 516 px wide, feather-blended with a horizontal gradient

Result in images/stitch-preview/north-sunrise-aligned-preview.jpg:
  7164x2075 px panorama with continuous horizon and treeline.
  Cloud "V" at seam is a 36-second inter-shot artefact only; live video
  frames captured simultaneously will have no such discontinuity.

stitch-cameras.py: accepts tx/ty overrides as argv[4]/argv[5] so the
  offsets can be tuned without code changes.

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
2026-04-18 04:15:34 +00:00
Outis fb0af560f2 Merge pull request #2 from outis1one/claude/seasonal-sunrise-montage-nn268
Add camera-stitch preview and feature-matching script
2026-04-18 00:02:05 -04:00
Claude 8908c2f01a Add camera-stitch preview and feature-matching script
- images/stitch-preview/north-sunrise-hstack.jpg:
  naive side-by-side preview of the two skycams at 14:29 on 2026-04-17
- images/stitch-preview/feature-matches-debug.jpg:
  close-up of overlap region (right 40% of north × left 40% of sunrise)
  with ORB Lowe-ratio matches drawn — 39 candidates, RANSAC survives only
  4 inliers because the 90° perspective offset invalidates a similarity
  transform.  Overlap IS present (trees, houses, power poles visible in
  both) but full homography needs more/better tie points.
- stitch-cameras.py: reusable script that generates both previews plus a
  similarity-transform .txt for reuse in ffmpeg filter chains once we
  have enough matches (or manual tie-points).

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
2026-04-18 03:59:36 +00:00
Outis f0a1aa5d51 Add files via upload 2026-04-17 23:50:36 -04:00
Outis cb7fc82992 Add files via upload 2026-04-17 23:50:16 -04:00
Outis bb1d996254 Create test 2026-04-17 23:48:41 -04:00
Outis 0965b7bee3 Merge pull request #1 from outis1one/claude/seasonal-sunrise-montage-nn268
Claude/seasonal sunrise montage nn268
2026-04-17 23:48:13 -04:00
Claude 9403e3ca46 Fix season dates, resolution, attribution, retention policies, montage trigger
season_info.py (new):
- Computes actual equinox/solstice dates via Jean Meeus approximation
- Converts to LOCAL timezone (pytz / zoneinfo) so the calendar date reflects
  what the camera sees on the ground, including DST transitions
- Timezone defaults to America/New_York; override via $TIMEZONE env or 2nd arg
- Divides each season into 3 equal movements; handles Winter's year boundary
- Outputs IS_LAST_DAY=true on the final day of each movement

4-seasons.sh:
- Uses season_info.py for all date/season logic (no hardcoded day-of-year)
- Passes $yesterday to season_info.py so astronomical dates are correct
- Removed forced 1280x720 scale; clips stay at native camera resolution
- Auto-triggers montage-mvt.sh "$yesterday" on last day of movement so the
  correct movement (not the next day's) is compiled

montage-mvt.sh:
- Accepts optional YYYY-MM-DD argument (passed by 4-seasons.sh) so it
  resolves the correct season/movement when run the morning after last day
- Detects source resolution from first daily clip via ffprobe; attribution
  card is generated at that exact resolution — no resizing of main video
- Font sizes proportional to frame height so text looks right at any res
- License corrected to CC BY-SA 3.0 (was CC BY-NC-SA 4.0)

fullday-video.sh:
- Removed 30-minute target; video length is natural (num_images / FPS)
- Default FULLDAY_FPS=5 (configurable at top of script)
- Retains RETENTION_DAYS=10 auto-delete for full-day videos only
- Sunrise 10s uploads and montage videos are never auto-deleted

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
2026-04-18 03:36:34 +00:00
Claude 009f6b4b64 Add seasonal montage with music/fades/attribution and full-day timelapse
4-seasons.sh:
- Fix per-video target duration: divide by days_in_movement (~30) not
  days_in_season (~90), so concatenated clips sum to the movement's
  music duration
- Force consistent 1280x720 output (scale+pad) to prevent resolution
  mismatches when montage-mvt.sh concatenates across days
- Use ffprobe (not ffmpeg stderr parsing) for reliable duration reading
- Add music-dir fallback to repo-local music/ folder
- Remove the 2× music-doubling workaround (root cause fixed above)

montage-mvt.sh — complete rewrite:
- Proper season/movement detection matching 4-seasons.sh logic
- Step 1: concat all *-final.mp4 clips, normalise to 1280x720
- Step 2: speed-adjust concatenated video to exactly match music duration
- Step 3: merge with Vivaldi movement audio + 2 s video/audio fade in/out
- Step 4: generate 7-second black attribution card (drawtext) crediting
  John Harrison / Wichita State University Chamber Players / FMA /
  CC BY-NC-SA 4.0
- Step 5: concat montage + attribution into final file
- Temp files cleaned up via EXIT trap

fullday-video.sh — new script:
- Full-day timelapse from yesterday's images targeting ~30 minutes
- Per-frame duration = 1800 / num_images (clamped 0.017–10 s/frame)
- 1280x720 output, video-only (no audio)
- Auto-deletes fullday videos older than 10 days

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
2026-04-18 03:16:27 +00:00
Outis 37fb9a5f30 Add files via upload 2026-04-17 23:01:35 -04:00
Outis 5c45cef3e5 Add files via upload 2026-04-17 23:00:12 -04:00
Outis b33fd20a81 Add files via upload 2026-04-17 22:59:34 -04:00
Outis eac283e2ae Delete 01 John Harrison with the Wichita State University Chamber Players - Spring Mvt 1 Allegro.mp3 2026-04-17 22:58:47 -04:00
Outis f9db2e9ab4 Add files via upload 2026-04-17 22:58:14 -04:00
Outis 44a26f48b3 Add files via upload 2026-04-17 22:53:16 -04:00
Outis de189dda3d Create test.txt 2026-04-17 22:50:42 -04:00
Outis 87e7ba4ce9 Add files via upload 2026-04-17 22:48:48 -04:00