O problema era com o armazenamento em cache e com o uso de um programa de download http e stdout para gravar em um arquivo. Se alguém tiver alguma ideia de por que minha solução funciona e meu esforço original não, por favor, comente!
Isso é o que eu fiz:
-Meu Crontab parece o mesmo
-Meu script de gravação usa o mplayer e armazena em cache a mídia na memória enquanto grava em um arquivo
-Eu verifiquei a velocidade de gravação do disco rígido que eu estava usando e consistentemente obtive gravações contíguas sustentadas entre 74-76MB / s
Aqui está meu script: #! / bin / bash
CHANNEL=707
FILENAME="output"
TIMEOUTSECS=3601
# Set channel
if [ "$1" ]
then
CHANNEL="$1"
fi
# Set filename
if [ "$2" ]
then
FILENAME="$2"
fi
# Set timeout time in minutes
if [ "$3" ]
then
TIMEOUTSECS="$3"
fi
echo $0 $CHANNEL $FILENAME $TIMEOUTSECS> "/home/user/cron/log/log-RECORD.sh $CHANNEL $FILENAME $TIMEOUTSECS.txt"
# Start recording
cd /home/user/recordings
echo RECORDING>> "/home/user/recordings/$FILENAME.LOCK.mkv"
echo mplayer -cache 131072 -dumpfile "/home/user/recordings/$FILENAME.mpg" -dumpstream "http://192.168.1.200:5004/auto/v$CHANNEL"
/usr/bin/mplayer -cache 196608 -dumpfile "/home/user/recordings/$FILENAME.mpg" -dumpstream "http://192.168.1.200:5004/auto/v$CHANNEL"&
sleep $TIMEOUTSECS
sleep 1
for s in HUP INT KILL; do
kill -$s $! &>/dev/null || break
sleep 5
done
rm "/home/user/recordings/$FILENAME.LOCK.mkv"
/usr/bin/ccextractor "/home/user/recordings/$FILENAME.mpg" -out=srt -o "/home/user/recordings/$FILENAME.srt"
/usr/bin/ffmpeg -i "/home/user/recordings/$FILENAME.mpg" -i "/home/user/recordings/$FILENAME.srt" -scodec copy -vcodec copy -threads 8 -acodec copy "/home/user/recordings/$FILENAME-Editable.mpg"
/usr/bin/ffmpeg -i "/home/user/recordings/$FILENAME.srt" -i "/home/user/recordings/$FILENAME-Editable.mkv" -scodec copy -vcodec libx264 -threads 8 -crf 26 -coder 1 -acodec aac -vbr 4 -strict -2 "/home/user/recordings/$FILENAME-Quick.mkv"
chown -R user "/home/user/recordings/*"
cd /home/user/cron