summaryrefslogtreecommitdiffstats
path: root/frikanalen/bin/check_stream_images
blob: 3bd87d58562b36a919f523ab66794a3621ef66f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/sh
#
# Nagios test to detect a hanging video stream.
# Fetch two images from the Video stream and make sure they differ.
# Report error if they stay the same.
#
# Remember: apt-get install findimagedupes mplayer

delay=35 # seconds
tmpdir=/tmp

getframe() {
    (
	cd $tmpdir # Make sure temp file is stored in temp directory
	url="$1"
	filename="$2"
	mplayer -ss 0:00 -frames 1 -vo jpeg -nosound $url > /dev/null 2>&1
	mv 00000001.jpg $filename
    )
}

for bin in mplayer findimagedupes ; do
    if type $bin >/dev/null 2>&1 ; then
	:
    else
	echo "WARNING: Unable to find $bin binary."
	exit 1
    fi
done

if [ ! "$1" ] ; then
    cat <<EOF
Usage: check_stream_images <url>
Example: check_xstream_images http://voip.nuug.no:8000/frikanalen.ogv
EOF
    exit 1
else
    url="$1"
fi

getframe "$url" "$tmpdir/first.jpeg"
sleep $delay
getframe "$url" "$tmpdir/second.jpeg"

if findimagedupes $tmpdir/first.jpeg $tmpdir/second.jpeg | grep -q second.jpeg ; then
    rm $tmpdir/first.jpeg $tmpdir/second.jpeg
    echo "CRITICAL: Two images taken $delay seconds apart were (almost) identical"
    exit 2
else
    rm $tmpdir/first.jpeg $tmpdir/second.jpeg
    echo "OK: Two images taken $delay seconds apart differ"
    exit 0
fi