ffmpeg-grabber/Dump.sh

52 lines
1.2 KiB
Bash
Raw Normal View History

2012-03-29 12:04:41 +02:00
#!/bin/bash
NAME=$1
SERVER_IP=192.168.1.66
PORT=8080
USERNAME=admin
PASSWORD="123456"
CAMERAS="0 1 2 3 4 5 6 7 8"
SECONDS_PER_FILE=5
PIDFILE_BASE=/tmp/wget_script.$RANDOM.pids
if [ -z "$NAME" ]; then
NAME=0
fi
quit() {
echo "quitting..."
PIDS="$(cat ${PIDFILE_BASE}_A 2>/dev/null) $(cat ${PIDFILE_BASE}_B 2>/dev/null)"
rm ${PIDFILE_BASE}_A ${PIDFILE_BASE}_B 2>&1 >> /dev/null
2012-03-29 12:49:28 +02:00
kill $PIDS 2>/dev/null || (sleep 10; kill -9 $PIDS 2>/dev/null)
2012-03-29 12:04:41 +02:00
exit $0
}
trap 'quit 0' SIGINT SIGTERM EXIT
do_record() {
for i in $CAMERAS; do
echo "starting recording for camera $i" >&2
(wget --ignore-length --http-user=$USERNAME --http-passwd=$PASSWORD http://${SERVER_IP}:$PORT/cam/$i/stream.mjpeg -O dump_cam${i}.mjpeg -q 2>&1 >> /dev/null) &
WGET_PIDS="$WGET_PIDS $!"
done
echo "$WGET_PIDS" > ${PIDFILE_BASE}_${1}
exit 0
}
while true; do
echo "starting group A"
do_record A &
2012-03-29 12:49:28 +02:00
PIDS_B=$(cat ${PIDFILE_BASE}_B 2>/dev/null)
2012-03-29 12:04:41 +02:00
if [ ! -z "$PIDS_B" ]; then echo "killing group B"; kill $PIDS_B; fi
sleep $SECONDS_PER_FILE
echo "starting group B"
2012-03-29 12:49:28 +02:00
do_record B &
PIDS_A=$(cat ${PIDFILE_BASE}_A 2>/dev/null)
2012-03-29 12:04:41 +02:00
if [ ! -z "$PIDS_A" ]; then echo "killing group A"; kill $PIDS_A; fi
sleep $SECONDS_PER_FILE
done
quit 1