#!/bin/bash set -e if [ "$#" -lt 1 ]; then echo "Usage: $0 [FM_freq]" exit 1 fi VIDEO_FILE="$1" FM_FREQ="${2:-71.75}" AUDIO_FILE="/tmp/$(basename "${VIDEO_FILE%.*}").wav" # Pre-extract the audio stream if it doesn't exist already if [ ! -f "$AUDIO_FILE" ]; then echo "Extracting audio to $AUDIO_FILE..." ffmpeg -i "$VIDEO_FILE" -vn -acodec pcm_s16le -ar 22050 -ac 1 "$AUDIO_FILE" fi # Start video playback concurrently echo "Starting omxplayer playback..." omxplayer -n -1 --loop --display=2 "$VIDEO_FILE" & OMX_PID=$! sleep 1.3 # Start pifmrds using the pre-extracted audio echo "Starting FM transmission on $FM_FREQ MHz..." sudo ~/rpitx-ui/pifmrds -freq "$FM_FREQ" -audio "$AUDIO_FILE" & PIFMRDS_PID=$! cleanup() { kill $PIFMRDS_PID $OMX_PID 2>/dev/null stty sane exit } trap cleanup SIGINT SIGTERM wait