Ahoj, potrebuju udelat videosmycku. Pouzita bude bezna USB webkamera, ale melo by to fungovat i s jakoukoliv jinou, ktera si vytvori /dev/videoX zarizeni.
Trvale se bude nahravat video, asi do RAM disku - proste docasne bez ukladani. V pripade detekce pohybu se musi ulozit poslednich asi 5s (pred pohybem) + se musi zacit nahravat video a po dokonceni pohybu jeste asi dalsich 10s ulozit.
Video z doby pohybu potrebuju ulozit do souboru.
Zkousel jsem program motion (http://www.linuxexpres.cz/praxe/motion-zachytte-pohyb), ale ten je hodne narocny na procesor. Ja mam externi detektory pohybu (PIR).
Mate tip na nejaky program, ktery dokaze trvale nahravat video (bez ukladani) a pokud mu nejak prijde povel, ulozi poslednich par sekund + zacne ukladat do souboru?
Povel muzu predat temer libovolne. Tomu se prizpusobim.
Diky za radu.
Ffmpeg umí ukládat stream, pak můžeš pomocí něho udělat z videa výseky.
Tj jedním ffmpegem bych ukládal stream do toho ram disku a druhému bych posílal parametry vysekni čas od do... Něco podobného mám vyřešeno, jen stream neukládám do ramdisku ale na disk a pak každej den stream projíždím a nasekávám pohyb.
Nicméně nezkoušel sem jak si ffmpeg poradí s procházením neukončeného videa, ale když zvolíš nějaký vhodný kontejner, který si ukládá hladičky průběžně, třeba mkv, tak by myslím neměl bejt problém...
Muzes to trocuh upresnit? Aktualne pouzivam avconv (ffmpeg).
Da se mu nejak vyslevetlit, at neustale nahrava treba 10s?
Pokud by slo, mohl bych pouzit nasledujici postup:
Jeden trvale bezici avconv, ktery by nahraval video do suboru v ramdisku a trvale prepisoval napr. 10s.
Jakmile by prisel impuls z PIR, killnul bych prvni avconv a zustal by mi soubor. Okamzite bych spustil druhy avconv a nahraval do dalsiho impulsu z PIR. Pak bych i ten killnul a obe videa spojil.
No pokud vím tak jo, resp sem to nezkoušel ze streamu ale z videa, a ale to by mělo bejt jedno. -f segment -segment_time XX Tím můžeš kouskovat stream třeba po 10s... Tj v tvém případě budeš ukládat řekněme co 10s to nové video, staré budeš odmazávat, a když bude pohyb, spustíš nahrávání + přilepšíš aktuální segment. Nicméně počítej s tím, že pak může bejt mezi segmentem a pohybem výpadek, než se prostě nahrávání nastartuje, může to někdy trvat, ale víc jak vteřina by to neměla bejt. (Záleží na kameře)
Nebo jak sem psal, budeš ukládat stále a když bude pohyb vysekneš ho ffmpegem -ss start_pohybu -d delka_pohybu
(První varianta bude asi lehčí na provedení, druhá mě přijde ale elegantnější.)
oprava:
-ss start_pohybu -t delka_pohybu
Citace od: Snow kdy 25. 03. 2015, 22:46:51
Nebo jak sem psal, budeš ukládat stále a když bude pohyb vysekneš ho ffmpegem -ss start_pohybu -d delka_pohybu
To nemuzu. Malo flash a RAM jeste min :-(
Doporučuji použít OpenCV, resp. projekt, který ho umí "využít" (třeba http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome).
tuxmartin: Raspberry Pi? Jsem zvědavej na finální řešení (nemám v plánu podobnou věc, ale znalost se hodí...)
Ahoj,
doporucuji IP kameru Airlive CU-720PIR. Ma infracerveny detektor pohybu (Passive InfraRed).
Jako bonus ma kamera pasivni Power-over-Ethernet na 12-24V.
Pri detekci pohybu ulozi avi soubor na primountovany samba disk. Zaznamena par sekund pred az par sekund po pohybu. Takto mi to doma funguje.
Krome toho z teto kamery nahravam stream, kde kazdou hodinu se vytvori novy soubor:
avconv -rtsp_transport tcp -i rtsp://kamera -c:v h264 -b:v 1000k -map 0 -f segment -segment_time 3600 -segment_wrap 96 -segment_format mkv "out_%02d.mkv"
Po 96 hodinach (4 dny) to skoci na zacatek a zacne prepisovat stare soubory.
Suma sumarum, mam nepretrzity zaznam 4 dny zpetne a krom toho mi kamera sama od sebe vytvori dalsi kratky video pri zaznamenani pohybu.
No ja bych pouzil to co pise Pavels s tim ze bych si udlel kratka okna treba 5s ty hazel do ramdisku
Vedle script co to bude pravidelne promazavat
A jeste script co kdyz zachyti pohyb pres pir cidlo tak veme odpovididajici segmenty a nekam je nakopci, pripadne slepi
Citace od: karel kdy 26. 03. 2015, 10:54:09
Vedle script co to bude pravidelne promazavat
Proc? segment_wrap sam rotuje soubory.
Citace od: karel kdy 26. 03. 2015, 10:54:09
A jeste script co kdyz zachyti pohyb pres pir cidlo tak veme odpovididajici segmenty a nekam je nakopci, pripadne slepi
Proc? Kamera sama vytvori kratke video pri detekci pohybu a ulozi na samba/ftp/microSD.
Pavels: Ale on má detektor pohybu zvenku.
Diskobolos: Proč proboha komplikovat nahrávání videa OpenCV?
Ten segment wrap mi přijde jako dobré řešení.
Citace od: Jenda kdy 26. 03. 2015, 15:17:00
Pavels: Ale on má detektor pohybu zvenku.
Aha, to jsem prehledl. Nicmene mnou doporucena kamera ma i digitalni vstup, na ktery by slo externi cidlo napojit. Kamera potom dokaze spustit nahravani pri zmene na digitalnim vstupu.