Expose encoding quality and overlay durations in sky-cam.conf

Adds six CRF vars, AUDIO_BITRATE, and three MONTAGE_* overlay durations.
Values match previous hardcoded defaults so behavior is unchanged.

The same CRF appeared in several scripts but with intentionally different
values per purpose (28 for draft intermediates, 26 for polished output).
Each script's CRF is now its own variable in conf, so changing one never
silently changes another.

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
This commit is contained in:
Claude
2026-04-19 16:08:14 +00:00
parent fffb19fd38
commit 6d68010691
5 changed files with 38 additions and 10 deletions
+8 -6
View File
@@ -31,9 +31,11 @@ base_dir="$BASE_DIR"
music_base_dir="$MUSIC_DIR"
[ ! -d "$music_base_dir" ] && music_base_dir="$SCRIPT_DIR/music"
FADE_DUR=2.0 # video + audio fade in/out (seconds)
ATTR_DUR=6 # attribution overlay duration (seconds from start)
ATTR_FADE=1 # attribution fade in / fade out duration
# Fade/overlay durations come from sky-cam.conf (MONTAGE_FADE_DUR,
# MONTAGE_ATTR_DUR, MONTAGE_ATTR_FADE). Alias for shorter local use.
FADE_DUR="$MONTAGE_FADE_DUR"
ATTR_DUR="$MONTAGE_ATTR_DUR"
ATTR_FADE="$MONTAGE_ATTR_FADE"
# ── Season / movement info ────────────────────────────────────────────────────
DATE_ARG="${1:-}"
@@ -100,7 +102,7 @@ ffmpeg -loglevel warning \
-f concat -safe 0 -i "$concat_list" \
-vf "scale=${VIDEO_W}:${VIDEO_H}:force_original_aspect_ratio=decrease,\
pad=${VIDEO_W}:${VIDEO_H}:(ow-iw)/2:(oh-ih)/2,setsar=1" \
-c:v libx264 -pix_fmt yuv420p -crf 26 -an \
-c:v libx264 -pix_fmt yuv420p -crf "$CRF_MONTAGE" -an \
-y "$temp_concat"
# ── Step 2: Speed-adjust to match music duration exactly ──────────────────────
@@ -112,7 +114,7 @@ temp_sped=$(mktemp --suffix=.mp4); TMPFILES+=("$temp_sped")
ffmpeg -loglevel warning \
-i "$temp_concat" \
-vf "setpts=PTS/$speed_factor" \
-c:v libx264 -pix_fmt yuv420p -crf 26 -an \
-c:v libx264 -pix_fmt yuv420p -crf "$CRF_MONTAGE" -an \
-t "$music_duration" -y "$temp_sped"
rm "$temp_concat"
@@ -156,7 +158,7 @@ ffmpeg -loglevel warning \
"[0:v]fade=t=in:st=0:d=${FADE_DUR},fade=t=out:st=${fade_out_start}:d=${FADE_DUR},${DT}[vout];\
[1:a]afade=t=in:st=0:d=${FADE_DUR},afade=t=out:st=${fade_out_start}:d=${FADE_DUR}[aout]" \
-map "[vout]" -map "[aout]" \
-c:v libx264 -pix_fmt yuv420p -c:a aac -b:a 192k \
-c:v libx264 -pix_fmt yuv420p -c:a aac -b:a "$AUDIO_BITRATE" \
-t "$music_duration" -y "$output_file"
rm "$temp_sped"