Commit Graph
11 Commits
Author SHA1 Message Date
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