Motion - ci

Tematy związane z oprogramowaniem, instalacją, konfiguracją
mike89
Posty: 14
Rejestracja: 12 grudnia 2012, 08:39

Motion - ciągły zapis obrazu z kamer

Post 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?
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post 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.
mike89
Posty: 14
Rejestracja: 12 grudnia 2012, 08:39

Post autor: mike89 »

jak będzie się dało podmienić kamerę lokalną na ip to poproszę o taki skrypt :)
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post 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.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Jedynie w przypadku gdy kamera wypluwa strumień RTSP.
ODPOWIEDZ