#!/usr/bin/env bash set -euo pipefail PROJECT_ROOT="${PROJECT_ROOT:-/data1/yfzx/wangx/Code/icassp2027-experiment}" VIDEO_ROOT="${VIDEO_ROOT:-/data1/yfzx/wangx/Datasets/easycom/extracted_easycom/Main/Video_Compressed}" TARGET_ROOT="${TARGET_ROOT:-${PROJECT_ROOT}/target_frame}" PREP_ROOT="${PREP_ROOT:-/data1/yfzx/wangx/Datasets/easycom/omni_prepared}" LOG_ROOT="${LOG_ROOT:-${PROJECT_ROOT}/logs/prepare_5fps}" mkdir -p "${LOG_ROOT}" cd "${PROJECT_ROOT}" prepare_worker() { local sid session session_dir target output_dir log for sid in "$@"; do session="Session_${sid}" session_dir="${VIDEO_ROOT}/${session}" target="${TARGET_ROOT}/${session}.npy" output_dir="${PREP_ROOT}/${session}" log="${LOG_ROOT}/${session}.log" if [[ ! -d "${session_dir}" ]]; then echo "Missing source session: ${session_dir}" >&2 return 1 fi if [[ ! -s "${target}" ]]; then echo "Missing target: ${target}" >&2 return 1 fi { echo "$(date): preparing ${session}" python prepare_easycom_session.py \ --session-dir "${session_dir}" \ --output-dir "${output_dir}" \ --target "${target}" \ --fps 2 5 \ --reuse-existing echo "$(date): completed ${session}" } >"${log}" 2>&1 done } # FFmpeg/libx264 is already multithreaded. Two session workers generally make # better use of a many-core host without overwhelming storage or the CPU. prepare_worker 1 3 5 7 9 11 &2 exit 1 fi echo "ALL 12 SESSIONS PREPARED AT 2 FPS AND 5 FPS"