IlPuntoTecnico

Hardware e Software => Networking => Topic aperto da: Crist - 19 Ottobre 2017, 16:10

Titolo: OpenWRT, IPCamera e Motion
Inserito da: Crist - 19 Ottobre 2017, 16:10
Buon pomeriggio a tutti.

Inizio questo topic perché dopo una query sul forum ho visto che non ce ne sono (?) riguardanti Motion su openwrt.
Penso che possa essere utile a più di una persona usare il vecchio router trasformato grazie a OpenWRT in sistema di videosorveglianza.
Si è vero, ci sono IPcam che gestiscono tutto in automatico ma spesso (come nel mio caso) non riescono ad esportare video conseguenti ad un evento impostato sul motion detection proprietario. Anche le mie IPCam hanno quasi tutto per renderle autonome via interfaccia (mediocre) web ma mancano di questa possibilità.

In pratica vorrei che, ad un evento impostato, io possa far partire la registrazione video e mandarla sul mio NAS. E smanettando sulle IPCam pare non sia possibile perchè lui cerca solo eventuali drive interni (che ovviamente non possiede). Io invece devo mandarli via smb sul NAS.

Allora ho pensato di attaccare alla mia rete l'ex AGPF trasformato con OpenWRT, installare motion (ed eventuali pacchetti utili) per gestire tutto il comparto di segnalazione movimento su immagine e relativa registrazione su NAS; alle IPCam lascio il compito di mandarmi email di avviso movimento e di fare lo streaming su accesso diretto.

Mi stavo quindi accingendo a spulciare su google e provare un po di configurazioni anche se per ora non ho trovato granchè sull'accoppiata OpenWRT e motion. Però magari può essere utile scambiarci impressioni e consigli: insomma un bel brainstorming! Per esempio capire quanto riesca a gestire anche a livello hw (nel mio caso l'ex AGPF), quali pacchetti/codec possono servire allo scopo (considerando che non voglio streaming ma solo che registri il video sul percorso indicato), ecc...
Per ora ho installato il mjpg-streamer e porseguo le mie prove su una cam.

Le mie IPCam: Revotech I6038 e ELP 720p 
La rete interna è gestita da un TIM Techincolor AGTOT (VDSL 100) sbloccato alla 1.0.6 (complimenti per la guida relativa!) che lavora in DHCP, mantendo statici gli indirizzi utili (tra i quali le cam). L'ex AGPF OpenWRT è un client attaccato ad essa, con un suo IP statico e le IPCam sono collegate al router tramite PowerLine.
Ovviamente sarà anche il caso di aprire le porte del router indirizzate all'OpenWRT.









Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: gorneman - 20 Ottobre 2017, 16:19
Sono un po' perplesso sulla capacitá dell'hardware di gestire la cosa.
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: nice.guy12 - 21 Ottobre 2017, 00:48
meglio che compri un NVR basta che le tue ipcam sono onvif
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: -Mirco- - 21 Ottobre 2017, 16:20
Sono un po' perplesso sulla capacitá dell'hardware di gestire la cosa.
mi trovo daccordo con te..
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: Crist - 22 Ottobre 2017, 11:17
Si avete ragione e il dubbio lo avevo anche io.
Però volevo porvare a bassa risoluzione, con bassissimi fps (per lo scopo non serve di più).

La soluzione NVR non mi aggrada prchè volevo sfruttare hw già in mio possesso.
Oltre al AGPF posseggo anche un USR9108 e un Linksys WRT54GSv7 ma credo che l'AGPF sia il candidato ideale o sbaglio?

Quindi volevo cercare di farlo funzionare, provando magari varie configurazioni.

Al momento il mio OpenWRT è: LuCI 15.05-188-g87e9837 Release (git-16.043.44305-e2f9172) / OpenWrt Chaos Calmer 15.05.1

I pacchetti installati all'uopo (oltre a motion):

crtmpserver       r811-1 

ffmpeg               2.6.2-1

libffmpeg-full      2.6.2-1

mjpg-streamer   r182-7

Quello che volevo verificare era: sono obbligato a tenere lo streaming attivo (e quindi il server http), pur non usandolo via motion? Cioè io voglio solo che registri sul nas ma sono obbligato a tenere attivo anche lo streaming via motion?

Pur trovando le impostazioni ffmpeg nel file di configurazione, non si riesce a farlo funzionare; forse c'è da configurare i vari pacchetti scaricati?

In giro c'erano tutorial per compilare motion con pacchetti ffmpeg inseriti ma da quello che vedo nel mio scaricato dal repository per la mia architettura, la sezione ffmpeg è già presente. Quindi dovrbbe funzionare una volta installate le lib ffmpeg ma ciò non avviene.

Posto il log risultante dal lancio di motion:

Codice: [Seleziona]
root@OpenWrt:/#  motion -n -d 9
[0] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_output_movies"
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_output_debug_movies"
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_timelapse"
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_timelapse_mode"
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_bps"
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_variable_bitrate"
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_video_codec"
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_deinterlace"
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "movie_filename"
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "timelapse_filename"
[0] [NTC] [ALL] motion_startup: Motion 3.4.0-Git-78ba2da Started
[0] [NTC] [ALL] motion_startup: Logging to syslog
[0] [NTC] [ALL] motion_startup: Using log type (ALL) log level (ALL)
[0] [NTC] [ALL] main: Thread 1 is from /etc/motion/motion.conf
[0] [NTC] [ALL] main: Thread 1 is device: rtsp://IPcam/link/funzionante input -1
[0] [NTC] [ALL] main: Stream port 0
[0] [NTC] [ALL] main: Waiting for threads to finish, pid: 1670
[1] [NTC] [ALL] motion_init: Thread 1 started , motion detection Enabled
[1] [ALR] [NET] netcam_start: Network Camera thread starting... for url (rtsp://IPcam/link/funzionante)
[1] [DBG] [NET] netcam_url_parse: Entry netcam_url_parse data rtsp://IPcam/link/funzionante
[1] [DBG] [NET] netcam_url_parse: Parse case 0 data rtsp://IPcam/link/funzionante
[1] [DBG] [NET] netcam_url_parse: Parse case 1 data rtsp
[1] [DBG] [NET] netcam_url_parse: Parse case 6 data IP Cam
[1] [DBG] [NET] netcam_url_parse: Parse case 7 data :554
[1] [DBG] [NET] netcam_url_parse: Parse case 8 data 554
[1] [DBG] [NET] netcam_url_parse: Parse case 9 data /live1.264
[1] [INF] [NET] netcam_start: Netcam_http parameter 'off' converts to flags: HTTP/1.0: 1 HTTP/1.1: 0 Keep-Alive OFF.
[1] [INF] [NET] netcam_start: now calling netcam_setup_rtsp()
[1] [ERR] [NET] netcam_setup_rtsp: FFmpeg/Libav not found on computer.  No RTSP support
[1] [WRN] [ALL] motion_init: Could not fetch initial image from camera Motion continues using width and height from config file(s)
[1] [NTC] [ALL] image_ring_resize: Resizing pre_capture buffer to 1 items
[1] [NTC] [ALL] image_ring_resize: Resizing pre_capture buffer to 3 items
[1] [DBG] [ALL] motion_loop: vid_return_code 1
[1] [WRN] [ALL] motion_loop: Retrying until successful connection with camera
[1] [ALR] [NET] netcam_start: Network Camera thread starting... for url (rtsp://192.168.1.9:554/live1.264)
[1] [DBG] [NET] netcam_url_parse: Entry netcam_url_parse data rtsp://192.168.1.9:554/live1.264
[1] [DBG] [NET] netcam_url_parse: Parse case 0 data rtsp://192.168.1.9:554/live1.264
[1] [DBG] [NET] netcam_url_parse: Parse case 1 data rtsp
[1] [DBG] [NET] netcam_url_parse: Parse case 6 data 192.168.1.9
[1] [DBG] [NET] netcam_url_parse: Parse case 7 data :554
[1] [DBG] [NET] netcam_url_parse: Parse case 8 data 554
[1] [DBG] [NET] netcam_url_parse: Parse case 9 data /live1.264
[1] [INF] [NET] netcam_start: Netcam_http parameter 'off' converts to flags: HTTP/1.0: 1 HTTP/1.1: 0 Keep-Alive OFF.
[1] [INF] [NET] netcam_start: now calling netcam_setup_rtsp()
[1] [ERR] [NET] netcam_setup_rtsp: FFmpeg/Libav not found on computer.  No RTSP support

Ripeto: le librerie di rtsp e ffmpeg le ho scaricate.
Continuerò a provare.



Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: Crist - 26 Ottobre 2017, 10:37
Niente da fare.

Ho provato anche a disattivare ffmpeg dal file di config e lasciare solo le foto in jpg (almeno questa libreria la scarica di default insieme a motion se non presente) ma il log rimane impietosamente uguale e cioè non riconosce i comandi ffmpeg.

Ho anche provato a cancellare tuttal a sezione ffmpeg dal config ma comunque mi dice sempre:

[1] [ERR] [NET] netcam_setup_rtsp: FFmpeg/Libav not found on computer.  No RTSP support

Sembrerebbe quasi un bug, visto che ffmpeg l'ho scaricato completo e funzionante; e comunque anche disabilitandolo lui si sofferma sul fatto che non capisce i comandi ffmpeg del suo config.

Non è che tocca compilarlo davvero come riportato su alcuni forum? Anche se questo è l'ultimo motion scaricato dal repository? Quelli sono post datati e possibile che in questa versione (come nelle ultime precedenti sono gestite su Github) non siano state implementate le funzionalità ffmpeg?

E' come se non sono abilitate a livello di codice: qunado parte il programma, legge il config e nota i comandi ffmpeg...sconosciuti! Mah.

Stavo anche considerando l'eventualità dui usarlo solo per le foto in jpg scattate al verificarsi dell'evento "movimento" ma pare che senza ffmpeg non si possa fare nulla...




Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: gorneman - 27 Ottobre 2017, 13:33
https://github.com/Motion-Project/motion/blob/master/INSTALL

qui noto che motion richiede la versione -dev dei pacchetti, cioé  la versione libreria per lo sviluppo.
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: Crist - 14 Novembre 2017, 09:14
Grazie per la segnalazione.

Purtroppo nel repository di OpenWRT non sono presenti pacchetti -dev utili allo scopo.
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: Crist - 02 Dicembre 2017, 12:06
Googolando ho trovato una discussione utile: https://github.com/Motion-Project/motion/issues/389

In pratica nell'url da definire per la cam, bisogna sempre anteporre (o forse solo per i flussi http) "mjpeg" e bisogna sempre definire il socket anche se usiamo lo standard 80.
Applicando le sopracitate modifiche al config, ho un log diverso anche se non riesco ancora a stabilire un collegamento soddisfacente con la cam.
Ecco la situazione:

http://*IP*/cgi-bin/getsnapshot.cgi

Questa stringa mi permette da browser di ottenere le istantanee; cambiandola come consigliato diventa:

mjpeg://192.168.1.9/cgi-bin/getsnapshot.cgi

Riavviando motion ottengo questo log:

Codice: [Seleziona]
[0] [NTC] [ALL] motion_startup: Motion 3.4.0-Git-78ba2da Started
[0] [NTC] [ALL] motion_startup: Logging to syslog
[0] [NTC] [ALL] motion_startup: Using log type (ALL) log level (NTC)
[0] [NTC] [ALL] main: Thread 1 is from /etc/motion/motion.conf
[0] [NTC] [ALL] main: Thread 1 is device: mjpeg://192.168.1.9/cgi-bin/getsnapshot.cgi input -1
[0] [NTC] [ALL] main: Stream port 8080
[0] [NTC] [ALL] main: Waiting for threads to finish, pid: 15242
[1] [NTC] [ALL] motion_init: Thread 1 started , motion detection Enabled
[1] [ALR] [NET] netcam_start: Network Camera thread starting... for url (mjpeg://192.168.1.9/cgi-bin/getsnapshot.cgi)
[1] [ERR] [NET] netcam_setup_rtsp: FFmpeg/Libav not found on computer.  No RTSP support
[1] [WRN] [ALL] motion_init: Could not fetch initial image from camera Motion continues using width and height from config file(s)
[1] [NTC] [ALL] image_ring_resize: Resizing pre_capture buffer to 1 items
[1] [NTC] [STR] http_bindsock: motion-stream testing : IPV4 addr: 127.0.0.1 port: 8080
[1] [NTC] [STR] http_bindsock: motion-stream Bound : IPV4 addr: 127.0.0.1 port: 8080
[1] [NTC] [ALL] motion_init: Started motion-stream server in port 8080 auth Disabled
[1] [NTC] [ALL] image_ring_resize: Resizing pre_capture buffer to 3 items
[1] [WRN] [ALL] motion_loop: Retrying until successful connection with camera
[1] [ALR] [NET] netcam_start: Network Camera thread starting... for url (mjpeg://192.168.1.9/cgi-bin/getsnapshot.cgi)
[1] [ERR] [NET] netcam_setup_rtsp: FFmpeg/Libav not found on computer.  No RTSP support
[1] [WRN] [ALL] motion_loop: Retrying until successful connection with camera
[1] [ALR] [NET] netcam_start: Network Camera thread starting... for url (mjpeg://192.168.1.9/cgi-bin/getsnapshot.cgi)
[1] [ERR] [NET] netcam_setup_rtsp: FFmpeg/Libav not found on computer.  No RTSP support

Come potete osservare le ultime tre righe si ripetono in loop.

Come già accennato precedentemente posso rinucniare allo streaming video e infatti l'ffmpeg è settato su off. Probabilmente questa versione non supporta il ffmpeg e il config è standard per tutte le versioni oppure non ci sono le giuste librerie installate (improbabile visto che nel repository c'è tutto l'occorrente); comunque il tutto viene confermato dal log che non riconosce le stringhe del ffmpeg.




Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: zoomx - 05 Dicembre 2017, 10:24
Ho provato una USBcam con openWRT ma usando un WR703n. Prestazioni pessime, purtroppo, un fotogramma al secondo alla minima risoluzione. Mi pare che ho usato motion oppure un'alternativa che richiedeva meno risorse.
Per quello che vuoi fare tu ti conviene un RaspberryPi unito alla sua camera che è fullHD e hai tutti i comandi che ti servono per fare filmati, anche a 90 fotogrammi al secondo (ma a bassa risoluzione), oppure foto con lunga esposizione e trovi anche un sacco di tutorial.
Alcuni di questi tutorial potrebbero andare bene anche per openWRT.

Riguardo agli errori: prima prova alla minima risoluzione (320x240 o anche meno, dipende dalla usbcam) e ad un fotogramma al secondo. Io nella prova non ho usato RTSP ma una banale pagina web con il server su openWRT. L'errore dice anche che non c'è Libav che immagino sia una libreria, magari è un pacchetto che si scarica a parte.
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: Crist - 07 Dicembre 2017, 16:32
Si infatti mi aspetto prestazioni bassissime; ma io sono anche disposto ad usare solo fotogrammi/fotografie al verificarsi di un movimento concreto nell'immagine.

Solo che nonostante installai i pacchetti richiesti, non funzionava perchè continuava a richiedere il tutto, come se non li vedesse (come segnalato sul mio primo post).

Sembrerebbe che motion presente nel repo di openwrt per l'architettura BCM63XX/MIPS sia "zoppo" ovvero privo del reale supporto ffmpeg; come già segnalato, una volta entrato nel config di motion provo disabilitare l'utilizzo di ffmpeg e rtsp settandoli su "off" ma senza alcun effetto. Se faccio partire motion mi segnala che non è presente alcun ffmpeg e compagnia cantando...

Forse la mia scarsa conoscenza dell'argomento non mi consente di capirci molto, però lo trovo strano...

Volevo anche provare a compilare (tramite cross-compilazione) il motion sorgente presente su git (nel quale mi pare di trovare un file ffmpeg in C): tempo e pazienza permettendo... :-\
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: -Mirco- - 07 Dicembre 2017, 18:36
Complimenti per la tenacia nell'avanzamento anche se, secondo me, il gioco continua a non valere la candela per performance cose basse, tanto vale comprare una soluzione effettivamente atta a fare quel tipo di lavoro  :)
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: Crist - 08 Dicembre 2017, 17:37
 :rotfl: Per ora stai assistendo alle testate di un dilettante allo sbaraglio... :headbang:

Sto cercando varie info riguardo il cross-compiling e per ora aumentano i dubbi più che le certezze  :rotfl:

Anche perchè non è ancora chiaro se il problema è solo nel pacchetto del repo OpenWRT per questa architettura oppure bisogna sempre ricompilarlo nella propria (visto che il file di config è completo e contempla l'uso delle varie librerie).
Mah continuerò a provare a tempo perso. Però è un peccato perchè probabilmente per gestire semplici jpeg su avviso poteva anche bastare.
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: Crist - 11 Dicembre 2017, 11:41
Vabbe' alzo le mani causa manifesta impreparazione sull'argomento e per scarso tempo a disposizione.
Opto per il piano B ovvero vecchio tablet motorola Xoom + app dedicata allo scopo. Funziona alla grande.
 
Peccato perchè volevo testare il vecchio gate ma tant'è...

Chiudo per quanto mi riguarda ma se qualcuno volesse trovare la soluzione...ben venga  :P ;)
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: zoomx - 12 Dicembre 2017, 12:43
Io però ricordo un post da qualche parte di una webcam collegata proprio ad un AGPF
Forse era questa
http://latanadelgurzo.blogspot.it/2012/11/webcam-in-streaming-con-openwrt.html
ma io ricordo una foto con AGPF e webcam.
Poi ho trovato questo
http://forum.meteonetwork.it/webcam-e-fotocamere-esterne/148616-progetto-webcam-economica-router-openwrt.html
Usano mjpeg-streamer e non motion
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: -Mirco- - 12 Dicembre 2017, 20:47
Da "smanettone" a servizio permanente anche io avrei insistito, ma in questo caso mi sento di concordare con la scelta di @Crist  di andare per il piano B sinceramente...
Titolo: Re:OpenWRT, IPCamera e Motion
Inserito da: Crist - 15 Dicembre 2017, 17:21
@zoomx
Si avevo già visto quella pagina da tempo ma si riferisce alle sole USB cam mentre io volevo connettere due IPcam.
E comunque gstreamer è un sw utile per il solo streaming mentre io volevo la videosorveglianza (quindi rec e invio allarmi).
Comunque grazie  ;)

In definitiva le problematiche in questo caso possono essere riassunte in due macro-aree:
1) problemi sw legati ad una non corretta implementazione del sw motion e dei relativi pacchetti;
2) difficoltà a far dialogare le mie IPcam con suddetto sw.