Эта заметку я хочу оставить для новичков в linux которые хотят организовать свое видео наблюдение с минимальными затратам.
Допустим у Вас есть машина на linux и желание поставить полноценную запись на HDD, есть конечно специальные продукты которые с этой задачей помогут. Я их тестировал, но они очень своеобразны и что говорить есть свои дыры.
Подумав, почитав литературу решил попробовать простейшую запись, при помощи скриптов bash. И получилось.
#!/bin/bash
"сколько запущено процессов?
a=`ps ax | grep "cam1_rec" | wc -l`
if [ $a -le 2 ]
then
echo "Starting cam1_rec"
bash /home/alexsx19/red/_script/video/cam1_rec.sh
else
echo "Not starting cam1_rec"
fi
$(ls -t /home/alexsx19/red/_cam/video/* | sed -e '1,288d' | xargs -d '\n' rm)
Скрипт размещаем в в файл sh, в cron пишем правило.
Это скрипт ротации файлов. Он необходим для очистки HDD от старых файлов. Пере запись производится циклом, старые записи затираются новыми.
Далее сам скрипт записи потока с камеры
#!/bin/bash
camIP="192.168.1.10"
namecam="cam1"
DUR='00:10:00'
CTIME=`date +%Y%m%d_%H%M%S_`$namecam
PATH2="/home/alexsx19/red/_cam/video/$CTIME.avi"
BIT='3072k'
RSL='1920x1080'
FPS='25'
RTSP="rtsp://"$camIP":554/user=server&password=ТУТ ПАРОЛЬ ОТ КАМЕРЫ&channel=1&stream=0.sdp"
echo "=====-" $CTIME "-====="
'решетка'Ping time
count=$(ping -c 1 $camIP | grep /| cut -d '/' -f6)
if [ $count ]
then
CTIME2=`date +%H:%M:%S`
echo $CTIME2 "Ping cam => IP" $camIP "=" $count "ms"
CTIME2=`date +%H:%M:%S`
echo $CTIME2 "Video start record" "=> $CTIME.avi" "time="$DUR "bitrate="$BIT "size="$RSL "fps="$FPS
ffmpeg -t $DUR -i $RTSP -y -r $FPS -s $RSL -b $BIT -vcodec mpeg4 -f avi $PATH2 </dev/null>/dev/null 2>/dev/null
CTIME2=`date +%H:%M:%S`
echo $CTIME2 "Video end record" " => $CTIME.avi"
# ffmpeg -i "/home/alexsx19/red/_cam/video/$CTIME.avi" -vframes 1 "/home/alexsx19/red/_cam/video/image%d_"$CTIME".jpg" </dev/null>/dev/null 2>/dev/null
# CTIME2=`date +%H:%M:%S`
# echo $CTIME2 "Image record" " => image1_$CTIME.jpg" "size="$RSL
else
CTIME2=`date +%H:%M:%S`
echo $CTIME2 "Not ping cam => IP" $camIP
fi
А вот и все. После этого планировщик запускает скрипт, а тот пишет с потока. Быстро удобно. Спросите как организовать архив. Время и дата видна из названия файла, перемещаем что необходимо в другую папку и это уже храниться и не стирается. По настройкам я думаю разберётесь в первых строках скрипта и частота и разрешение и длительность записи и другие настройки.
А еще внизу скрипта есть закомментированные строки о том как делать скрин с камеры, тоже удобно.
И немного картинок.