#!/bin/bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" if [ -d "$SCRIPT_DIR/../src" ]; then PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" else PROJECT_ROOT="$SCRIPT_DIR" fi cd "$PROJECT_ROOT" export PYTHONPATH="$PROJECT_ROOT/src" if [ -f "$PROJECT_ROOT/venv/bin/python" ]; then PYTHON="$PROJECT_ROOT/venv/bin/python" else PYTHON="python3" fi dates=( "2026-06-18" ) cameras=("CC1" "CC2" "CC3" "CC4") # Maximum parallel video jobs (default: 4) MAX_JOBS="${MAX_JOBS:-4}" echo "=== Starting per-video parallel processing with video output for 2026-06-18 (MAX_JOBS=$MAX_JOBS) ===" for date in "${dates[@]}"; do for cam in "${cameras[@]}"; do echo "=== Launching $date ($cam) ===" $PYTHON -m chicken_counter.cli batch --config configs/cycle7_batch_optimized.yaml --date "$date" --camera "$cam" --output-subdir output_video & # Throttle active background jobs to MAX_JOBS while [ "$(jobs -r -p | wc -l)" -ge "$MAX_JOBS" ]; do sleep 1 done done done wait echo "=== All video processing jobs completed ==="