Add MONTAGE_MUSIC_LOOPS per-movement music loop multiplier

Short adagio movements (Summer Mvt 2 at 107s, Winter Mvt 2 at 132s, etc.)
compress each day to only 3-5 seconds of screen time at 1×.  Looping the
music N times multiplies the per-day target duration proportionally so the
footage is less aggressively sped up and more watchable.

- sky-cam.conf: add MONTAGE_MUSIC_LOOPS and per-movement overrides
  (Summer Mvt2=3×, Winter Mvt2=3×, Autumn Mvt2=2×, Summer Mvt3=2×, Spring Mvt2=2×)
- 4-seasons.sh: multiply target_per_clip by loops
- montage-mvt.sh: compute effective_duration, use -stream_loop for audio,
  fix fade_out_start, -t, and post-build duration check
- make-finals.sh: multiply target by loops

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
This commit is contained in:
Claude
2026-04-20 20:11:10 +00:00
parent 387b84f367
commit 0ccfb2dae0
4 changed files with 39 additions and 12 deletions
+3 -1
View File
@@ -97,7 +97,9 @@ while IFS= read -r -d '' temp_file; do
fi
music_duration=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$music_file")
target=$(echo "scale=6; $music_duration / $DAYS_IN_MVT" | bc)
loops_var="MONTAGE_MUSIC_LOOPS_${SEASON}_${MVT_NUM}"
loops="${!loops_var:-${MONTAGE_MUSIC_LOOPS:-1}}"
target=$(echo "scale=6; $music_duration * $loops / $DAYS_IN_MVT" | bc)
out_dir="$MOVIES_DIR/$cam/$ASTRO_YEAR/$SEASON/Mvt$MVT_NUM"
final="$out_dir/${date_str}_Mvt${MVT_NUM}-Day${DAY_OF_MVT}of${DAYS_IN_MVT}-final.mp4"