#!/bin/bash set -euo pipefail # Configuration AUDIO_DEVICE="${AUDIO_DEVICE:-hw:1}" # ALSA device (run 'arecord -l' to list) SEGMENT_SECONDS="${SEGMENT_SECONDS:-7200}" # 2 hours per file RECORDINGS_DIR="${RECORDINGS_DIR:-$HOME/recordings}" SOURCE_NAME="${SOURCE_NAME:-stationary}" # Prefix for filenames mkdir -p "${RECORDINGS_DIR}" echo "Starting recording..." echo " Device: ${AUDIO_DEVICE}" echo " Segment: ${SEGMENT_SECONDS}s" echo " Output: ${RECORDINGS_DIR}/${SOURCE_NAME}-*.opus" while true; do ffmpeg -f alsa -ac 1 -i "${AUDIO_DEVICE}" \ -c:a libopus \ -b:a 32k \ -f segment \ -segment_time "${SEGMENT_SECONDS}" \ -strftime 1 \ -reset_timestamps 1 \ "${RECORDINGS_DIR}/${SOURCE_NAME}-%Y-%m-%d_%H-%M-%S.opus" \ 2>&1 | while read line; do echo "[ffmpeg] $line"; done echo "Recording stopped, restarting in 5s..." sleep 5 done