Witam, posiadam kamerę IP Cabletech URZ0920 i raspberry pi z domoticzem.
Raspberry Pi została dodatkowo wykorzystana do strumieniowania video z kamery IP do folderu na dysku SSD udostępnionego w sieci za pomocą samba.
Stworzyłem skrypt powłoki shell, w którym znajduje się polecenie zapisu video z kamery, oraz usuwanie plików starszych niż 7dni. Polecenie FFMPEG tworzy jedno minutowe pliki video i kończy działanie po jednej godzinie, aby je ponowić w następnym cyklu pętli, która jest zawsze true. Na razie wszystko działa, ale jeżeli widzi ktoś rażące błędy, bądź można wprowadzić jakieś usprawnienia to zapraszam do dyskusji.
Zawartość pliku kamera.sh:
#!/bin/sh ### BEGIN INIT INFO # Provides: kamera wjazd # Required-Start: $remote_fs $syslog $all # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Kamera # Description: Wykonywanie segmentów do plików mp4 ### END INIT INFO while [ 1 ] do today=`/bin/date '+%d-%m-%Y__%H'xx`; #Usuń poprzednie zrobione pliki starsze niż x dni find /home/pi/camera/ -name '*.mp4' -mtime +7 -delete #Pobierz migawkę ze strumienia RTSP ffmpeg -i "rtsp://admin:123456@192.168.0.86:554/H264?ch=1&subtype=2" -vcodec copy -framerate 10 -map 0 -f segment -segment_time 60 -segment_format mp4 -t 01:00:00 /home/pi/camera/$today%02d.mp4 done
Plik umieszczamy w katalogu /usr/lib/systemd/scripts i nadajemy mu uprawnienia do wykonania (755).
Następnie tworzymy plik usługi w katalogu /usr/lib/systemd/system. Nazywamy go kamera.service i wpisujemy do niego następującą zawartość:
[Unit] Description=Kamera IP [Service] Type=oneshot ExecStart=/usr/lib/systemd/scripts/kamera.sh [Install] WantedBy=multi-user.target
Na koniec wykonujemy komendę:
sudo systemctl enable iptables_sh.service
Od tej pory skrypt będzie odpalany wraz ze startem systemu.