Strona 1 z 1

Motion - ciągły zapis obrazu z kamer

: 05 marca 2014, 12:06
autor: mike89
Witam

Stworzyłem sobie serwer do monitoringu, używam prostego programu na debiana - motion.
W przypadku zapisu obrazu z kamer do formatu avi ten program robi to z funkcją detekcji ruchu.

Czy jest możliwość konfiguracji tak, żeby zapis z kamery był ciągły?

: 05 marca 2014, 17:11
autor: kodama
Ja kiedyś miałem taki skrypt do 'pseudo monitoringu' - nagrywałem z kamery podłączonej do komputera przez usb :P Wszystko załatwione miałem na ffmpeg - jedna linijka i już ;) Jak odszukam to mogę pokazać co i jak miałem.

: 05 marca 2014, 17:25
autor: mike89
jak będzie się dało podmienić kamerę lokalną na ip to poproszę o taki skrypt :)

: 05 marca 2014, 17:40
autor: kodama
No spoko. Proszę bardzo:

Kod: Zaznacz cały

#!/bin/bash

if [ ! -d ~/Pulpit/.monitoring ]; then 
    mkdir ~/Pulpit/.monitoring
fi



#jak odpalimy z 1 to nagrywamy ciągiem jeden filmik 30 minutowy

if [ "$1" = 1 ];
    then
    cd /home/kodama/Pulpit/.monitoring/

    ffmpeg -y -f video4linux2 -s 640x480 -t 00:30:00 -i /dev/video0 -vcodec h264 -b 1000 -f alsa -ac 1 -i hw:1 -vf drawtext="fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf: text='\%T': x=15: y=460: fontcolor=white:" video_`date +%d.%m.%Y`.mp4 >/dev/null 2>&1


#a jak nie to mamy wybór ile nagrać
else



    cd /home/kodama/Pulpit/.monitoring/

        if [ -d `date +%d-%m-%Y` ]; then

        cd `date +%d-%m-%Y`
        rm *.mp4 2>/dev/null

        else 

        mkdir `date +%d-%m-%Y`
        cd `date +%d-%m-%Y`

        fi


    echo

        while [[ ! ($kawalki_int =~ ^[0-9]+$) ]]; do
            echo -n "Ile godzin nagrać? (1h = 2 filmy x 30 minut): "
            read kawalki_int

        done

    echo

    kawalki=`expr $kawalki_int * 2`;
    echo "Liczba filmów do nagrania: $kawalki"
    echo

    licznik=1;

        while [ $licznik -le $kawalki ];
            do

            echo "Rejestruję: video_`printf "%03d" $licznik`.mp4";

            ffmpeg -f video4linux2 -s 640x480 -t 00:30:00 -i /dev/video0 -vcodec h264 -b 1000 -f alsa -ac 1 -i hw:1 -vf drawtext="fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf: text='\%T': x=15: y=460: fontcolor=white:" video_`printf "%03d" $licznik`.mp4 >/dev/null 2>&1


            (( licznik++ ));

        done

    echo
    echo "Koniec";

fi
Linijka, która nagrywa filmik 30 minutowy (w lewym dolnym rogu mam wstawiony znacznik czasowy, można wywalić)

Kod: Zaznacz cały

ffmpeg -y -f video4linux2 -s 640x480 -t 00:30:00 -i /dev/video0 -vcodec h264 -b 1000 -f alsa -ac 1 -i hw:1 -vf drawtext="fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf: text='\%T': x=15: y=460: fontcolor=white:" video_`date +%d.%m.%Y`.mp4 >/dev/null 2>&1
Usuwając parametr

Kod: Zaznacz cały

 -t 00:30:00
Uzyskasz ciągłe nagranie, póki sam nie przerwiesz rejestrowania.

Nigdy nie miałem do czynienia z kamerami ip, ale myślę że www.google.pl + chwila czasu + chęci i jesteś spokojnie w stanie zaprzęgnąć ffmpeg'a do tego co potrzebujesz. Zapewne trzeba będzie coś pokombinować z

Kod: Zaznacz cały

-i /dev/video0
może podmienić na IP kamery albo coś, nie wiem, strzelam.

: 06 marca 2014, 08:52
autor: LordRuthwen
Jedynie w przypadku gdy kamera wypluwa strumień RTSP.