Add north/south cameras, remove fullday, add verify-mvt.sh

- sky-cam.conf: CAMERAS now includes east, north, south with staggered
  SCHEDULE_SEASONS times (01:00, 01:30, 02:00); fullday schedules and
  tuning removed
- install.sh: fullday service/timer generation removed entirely
- fullday-video.sh + systemd units: deleted
- montage-mvt.sh: post-build technical checks (duration drift, video/audio
  stream presence) added; notification now includes check results and the
  exact verify-mvt.sh command to run
- verify-mvt.sh: new interactive CLI for montage review — shows checks,
  plays video, deletes source JPEG folders on approval, or re-runs montage

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
This commit is contained in:
Claude
2026-04-20 15:56:12 +00:00
parent 04809cfe90
commit b4019ade9d
7 changed files with 225 additions and 130 deletions
+16 -4
View File
@@ -195,16 +195,28 @@ if ffmpeg -loglevel warning \
-t "$music_duration" -y "$output_file"; then
rm -f "$sped_file"
echo "Done: $output_file"
# ── Post-build checks ─────────────────────────────────────────────────────
actual_dur=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$output_file")
dur_delta=$(echo "scale=1; $actual_dur - $music_duration" | bc | sed 's/^-//')
stream_types=$(ffprobe -v error -show_entries stream=codec_type -of csv=p=0 "$output_file" 2>/dev/null)
has_video=$(echo "$stream_types" | grep -c "video" || true)
has_audio=$(echo "$stream_types" | grep -c "audio" || true)
checks="duration=${actual_dur}s (drift ${dur_delta}s)"
[ "$has_video" -gt 0 ] && checks="$checks video=ok" || checks="$checks video=MISSING"
[ "$has_audio" -gt 0 ] && checks="$checks audio=ok" || checks="$checks audio=MISSING"
echo "Checks: $checks"
"$SCRIPT_DIR/notify.sh" \
"Montage ready: $SEASON Mvt $MVT_NUM ($ASTRO_YEAR)" \
"$(basename "$output_file") ${music_duration}s" \
"Montage ready: $SEASON Mvt $MVT_NUM ($ASTRO_YEAR) [$CAM_NAME]" \
"$(basename "$output_file") | $checks | verify: ./verify-mvt.sh $ASTRO_YEAR $SEASON $MVT_NUM $CAM_NAME" \
|| true
else
mv "$sped_file" "$output_file"
echo "Music+overlay failed — silent video promoted to: $output_file"
"$SCRIPT_DIR/notify.sh" \
"WARNING: montage audio+overlay failed — $SEASON Mvt$MVT_NUM ($ASTRO_YEAR)" \
"Silent video saved as $(basename "$output_file") — re-run montage-mvt.sh to retry" || true
"WARNING: montage audio+overlay failed — $SEASON Mvt$MVT_NUM ($ASTRO_YEAR) [$CAM_NAME]" \
"Silent video saved as $(basename "$output_file") — run: ./verify-mvt.sh $ASTRO_YEAR $SEASON $MVT_NUM $CAM_NAME" || true
fi
# ── Trigger year-end join on last Autumn movement ────────────────────────────