Нагородил костылей, но запись звука более 30 сек. всё-таки сделал. Пользуйтесь на здоровье! Вкратце, curl берет аудио поток с камеры, передает его дальше по трубе sox который меняет его заголовок длинны, а затем через трубу передает ffmpeg.
#!/bin/bash
HOST=$1
USER=rec
PASSWORD=$2
DURATION=00:29:59
DIRECTORY=/home/rec/cctv/$3
mkdir -p $DIRECTORY
curl -s http://$USER:$PASSWORD@$HOST/audio.cgi | sox --ignore-length - -t wav - 2>/dev/null | ffmpeg -t $DURATION -f mjpeg -r 20 -i http://$USER:$PASSWORD@$HOST/MJPEG.CGI -ar 16000 -i pipe:0 -sameq $DIRECTORY/$(date '+%F_%R').mp4 > /dev/null 2>&1