Bonjour,
J'ai comme projet de me servir de mon Raspberry (sous Raspbian), de mon dongle wifi usb et d'une vieille webcam USB comme matériel de surveillance à la maison.
Mon souhait est de pouvoir bénéficier de la détection de mouvement, et de l'envoi des images par FTP vers ma machine principale.
J'ai testé motion, et cette application fonctionne assez bien. A un détail près, je n'arrive pas à avoir plus d'une image par seconde au mieux, quelles que soient les optimisations du fichier de conf.
Je me suis orienté alors vers mjpg-streamer → beaucoup plus de fluidité niveau fps.
Mais je bloque sur l'envoi par FTP des images...
J'ai trouvé un script sur github à cet effet mais je n'arrive qu'à envoyer une seule image, qui se remplace elle même par la suivante dans le dossier de ma tour... (pas pratique...)
Aussi, j'aimerais bien coupler mjpg-streamer avec motion pour bénéficier de la détection de mouvements (histoire de ne pas devoir balancer tout en permanence sur la carte SD du rpi, ou sur mon disque dur de ma tour...) mais si j'arrivais à envoyer par FTP les images capturées par mjpg-streamer je serais déjà bien content
Auriez vous une idée de comment je pourrais faire?
Merci d'avance pour vos conseils avisés
[Résolu] mjpg_streamer + motion et envoi par ftp
Last edited by alcy0n on Mon Nov 18, 2013 8:27 am, edited 3 times in total.
-
- Posts: 4647
- Joined: Thu Jan 24, 2013 8:43 am
Re: mjpg_streamer + motion et envoi par ftp
Oui j'ai été voir. Je sais utiliser autant motion (avec son faible FPS) que mjpg-streamer...
Le problème c'est d'associer l'un à l'autre...
motion : Config + envoi FTP = OK (mais pas assez de FPS)
mjpeg-streamer = OK (pas d'autodétection ni parvenu d'envoyer le stream / les images jpeg vers mon FTP [script])

Le problème c'est d'associer l'un à l'autre...
motion : Config + envoi FTP = OK (mais pas assez de FPS)
mjpeg-streamer = OK (pas d'autodétection ni parvenu d'envoyer le stream / les images jpeg vers mon FTP [script])

-
- Posts: 4647
- Joined: Thu Jan 24, 2013 8:43 am
Re: mjpg_streamer + motion et envoi par ftp
Il paraît qu'on peut gruger motion en lui changeant l'entrée dans /etc/motion/motion.conf
à la ligne videodevice
et avec output_file.so de mjpg il y a moyen de faire quelque chose
http://sourceforge.net/apps/mediawiki/m ... utput_file
(pas essayé bien entendu)
à la ligne videodevice
et avec output_file.so de mjpg il y a moyen de faire quelque chose
http://sourceforge.net/apps/mediawiki/m ... utput_file
(pas essayé bien entendu)
Re: mjpg_streamer + motion et envoi par ftp
Merci, je vais tester ça 
Aussi, je dois mettre quoi exactement dans la conf de motion? (J'avais déjà essayé, sans succès...)
Pour qu'il n'écrase pas l'image à chaque fois je sais pas trop comment changer le script. J'ai pensé à remplacer le mv par cp, mais je pense pas qu'il incrémente les noms de fichiers du coup...

Aussi, je dois mettre quoi exactement dans la conf de motion? (J'avais déjà essayé, sans succès...)
Pour qu'il n'écrase pas l'image à chaque fois je sais pas trop comment changer le script. J'ai pensé à remplacer le mv par cp, mais je pense pas qu'il incrémente les noms de fichiers du coup...
-
- Posts: 4647
- Joined: Thu Jan 24, 2013 8:43 am
Re: mjpg_streamer + motion et envoi par ftp
il faut modifier le script pour qu'il change le nom de fichier à chaque envoi.
avec la date par exemple ajouter une chaîne contenant la date avec date option -s
man date pour plus d'infos.
Attention au remplssage de DD ...
avec la date par exemple ajouter une chaîne contenant la date avec date option -s
man date pour plus d'infos.
Attention au remplssage de DD ...
Re: mjpg_streamer + motion et envoi par ftp
Merci du conseil. J'ai beau chercher je ne trouve rien au sujet du tweak de motion et l'option videodevice :/
Car clairement, comme tu le soulignes dans ton dernier post, si j'utilise mjpg-streamer il balance tout non stop et je risque d'avoir beauuuuuucoup d'images sur mon disque...
Peux tu m'en dire plus au sujet du tweak possible pour associer les deux application?
Car clairement, comme tu le soulignes dans ton dernier post, si j'utilise mjpg-streamer il balance tout non stop et je risque d'avoir beauuuuuucoup d'images sur mon disque...
Peux tu m'en dire plus au sujet du tweak possible pour associer les deux application?
-
- Posts: 4647
- Joined: Thu Jan 24, 2013 8:43 am
Re: mjpg_streamer + motion et envoi par ftp
> j'ai vu cela mais pas noté de bookmark.
Tu me donnes des doutes sur ce que j'ai annoncé
ya pas moyen de bricoler le module output de ffmpeg pour qu'il change le nom de fichier à transmettre ?
Tu me donnes des doutes sur ce que j'ai annoncé

ya pas moyen de bricoler le module output de ffmpeg pour qu'il change le nom de fichier à transmettre ?
Re: mjpg_streamer + motion et envoi par ftp
No souci, en fait moi aussi ça me dit quelque chose mais je n'arrive plus à trouver la source...
Ben si, il y a moyen de prendre les captures en continu sans écraser :
Mais ça m'arrange pas... Ca stock tout sur la SD du Raspberry, et non stop :/
A la limite, si j'arrivais au moins à adapter cette commande avec celle ci : pour m'envoyer ces images sur mon FTP ça serait déjà pas mal...
EDIT = Alors c'est une demi réussite : j'ai édité le script pour le FTP et l'envoi est OK. Reste à l'intégrer dans motion... car tout balancer non stop, c'est lourd pour mon pauvre skeud... Donc j'ai bien pensé à une bidouille dans le fichier de conf de motion, plus précisément avec l'option on_picture_save où je lancerais mjpg-streamer avec les options qui vont bien... Mais là encore je sèche un peu... Si à chaque détection de mouvement une instance de mjpeg-streamer est lancée ça risque d'être le bordel... :þ
Ben si, il y a moyen de prendre les captures en continu sans écraser :
Code: Select all
mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -r 640x480 -f 4" -o "output_http.so -w `pwd`/www" -o "output_file.so -f <rep_local>"
A la limite, si j'arrivais au moins à adapter cette commande avec celle ci :
Code: Select all
wput -Bq --remove-source-files ftp://moi:mdp@mon_FTP %f
EDIT = Alors c'est une demi réussite : j'ai édité le script pour le FTP et l'envoi est OK. Reste à l'intégrer dans motion... car tout balancer non stop, c'est lourd pour mon pauvre skeud... Donc j'ai bien pensé à une bidouille dans le fichier de conf de motion, plus précisément avec l'option on_picture_save où je lancerais mjpg-streamer avec les options qui vont bien... Mais là encore je sèche un peu... Si à chaque détection de mouvement une instance de mjpeg-streamer est lancée ça risque d'être le bordel... :þ
-
- Posts: 4647
- Joined: Thu Jan 24, 2013 8:43 am
Re: mjpg_streamer + motion et envoi par ftp
EDIT = Alors c'est une demi réussite : j'ai édité le script pour le FTP et l'envoi est OK. Reste à l'intégrer dans motion... car tout balancer non stop, c'est lourd pour mon pauvre skeud... Donc j'ai bien pensé à une bidouille dans le fichier de conf de motion, plus précisément avec l'option on_picture_save où je lancerais mjpg-streamer avec les options qui vont bien... Mais là encore je sèche un peu... Si à chaque détection de mouvement une instance de mjpeg-streamer est lancée ça risque d'être le bordel... :þ[/quote]
ce que je pensais : comme mjpeg va plus vite , lui faire faire la capture video.
Il l'envoie à motion qui fera le tri et enverra où on veut par ftp
ce que je pensais : comme mjpeg va plus vite , lui faire faire la capture video.
Il l'envoie à motion qui fera le tri et enverra où on veut par ftp
Re: mjpg_streamer + motion et envoi par ftp
J'ai donc réfléchi à ce que tu as dit, et effectivement... gràce à l'option netcam_url http://ip_du_rpi:8090/?action=stream il semblerait que motion prenne le flux de mjpg-streamer directement.
Voilà donc mon fichier de conf pour motion :
Pour la compil de mjpg-streamer :
Pour lancer mjpg-streamer (j'utilise screen pour le laisser en fond, et pour lancer après motion) :
Aussi, j'ai créé un alias dans .bashrc pour éviter de devoir rechercher / taper la commande pour lancer mjpg-streamer :
Le stream est accessible depuis l'ip du raspberry via l'interface web de mjpg-streamer sur le port 8090. Les images (en cas de détection de mouvement) sont envoyées sur mon FTP (en local bien sûr puisque FTP n'est pas le protocole le plus sécurisé...).
Merci 1000 fois pour ton aide et ta patience totoharibo

Voilà donc mon fichier de conf pour motion :
Code: Select all
daemon off
process_id_file /home/utilisateur/motion.pid
setup_mode off
input 8
framerate 4
netcam_tolerant_check off
auto_brightness on
brightness 0
contrast 0
saturation 0
hue 0
switchfilter off
threshold 1500
threshold_tune off
noise_level 32
noise_tune on
despeckle EedDl
smart_mask_speed 0
lightswitch 0
output_all off
output_normal on
output_motion off
quality 100
ppm off
ffmpeg_cap_new off
ffmpeg_cap_motion off
ffmpeg_timelapse 0
ffmpeg_timelapse_mode daily
ffmpeg_bps 500000
ffmpeg_variable_bitrate 0
ffmpeg_video_codec swf
ffmpeg_deinterlace off
locate off
text_right %T-%q
text_changes off
text_event %H%M%S
text_double off
target_dir /home/utilisateur/motion
snapshot_filename %H%M%S-snapshot
jpeg_filename %H%M%S-%q
webcam_port 0
webcam_quality 30
webcam_motion off
webcam_maxrate 100
webcam_localhost off
control_port 8082
control_localhost on
control_html_output on
track_type 0
track_auto off
track_motorx 0
track_motory 0
track_maxx 0
track_maxy 0
track_iomojo_id 0
track_step_angle_x 10
track_step_angle_y 10
track_move_wait 10
track_speed 255
track_stepsize 40
quiet on
On_picture_save wput -Bq --remove-source-files ftp://utilisateur:mot_de_passe@IP_FTP %f
netcam_url http://ip_du_rpi:8090/?action=stream
Code: Select all
wget http://sourceforge.net/code-snapshots/svn/m/mj/mjpg-streamer/code/mjpg-streamer-code-182.zip
unzip mjpg-streamer-code-182.zip
cd mjpg-streamer-code-182/mjpg-streamer
make USE_LIBV4L2=true clean all
sudo make DESTDIR=/usr install
Code: Select all
screen
cd ~/mjpg-streamer/mjpg-streamer
mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -r 800x600 -f 3 -l off" -o "/usr/lib/output_http.so -p 8090 -w /usr/www"
ctrl + a + d (pour détacher la session, et ensuite lancer motion)
motion -c motion.conf
Code: Select all
alias mjpg='cd ~/mjpg-streamer/mjpg-streamer/ && exec mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -r 800x600 -f 3 -l off" -o "/usr/lib/output_http.so -p 8090 -w /usr/www"'
Merci 1000 fois pour ton aide et ta patience totoharibo

-
- Posts: 4647
- Joined: Thu Jan 24, 2013 8:43 am
Re: [Résolu] mjpg_streamer + motion et envoi par ftp
Merci. Tu as bien travaillé pour moi parce que ça m'intéresse.
(Pourquoi faire soi-même ce qu'un autre peut faire à sa place ?)
(Pierre Dac ?)
je garde ton fil au chaud.
(Pourquoi faire soi-même ce qu'un autre peut faire à sa place ?)
(Pierre Dac ?)
je garde ton fil au chaud.
Re: [Résolu] mjpg_streamer + motion et envoi par ftp
Hé hé.
Le top ce serait quand même d'arriver à exploiter l'autodétection (javascript) de mjpg-streamer, mais là c'est une autre histoire :/
Le top ce serait quand même d'arriver à exploiter l'autodétection (javascript) de mjpg-streamer, mais là c'est une autre histoire :/
Re: [Résolu] mjpg_streamer + motion et envoi par ftp
Bonjour!
Je sais que ce sujet date un peu, mais il est toujours d'actualité, non?
Pour ma part, j'utilise une Logitech c-270 (installée dans un ancien spot halogène) reliée à mon Raspi 2, en 12 secondes par images. Les images sont accessibles en local: http://192.168.1.7:13812/?action=stream et par Internet: http://nbbc.ddns.net:13812/?action=stream.
Ça fonctionne très bien. Mais bon, mon objectif est seulement de montrer la vue et non pas de l'enregistrer. C'est une weather-cam et non pas une caméra de surveillance. La webcam est affichée sur mon site meteo http://nettle-bay-beach-club-sxm.com/nbbcmeteo.html et quelques autres.
Je crois cependant qu'il est possible d'envoyer les images sur un serveur FTP. Mais le FTP, c'est lent et limité (pas de streaming, 1 image/sec maxi ou alors des vidéos séparées). J'en ai fait l'expérience avec Motion et un autre.
Personnellement, je préfère (dans ce cas) utiliser mon client Dropbox. Ça fonctionne nickel. Mais là encore, il ne semble pas possible de faire du vrai streaming.
Parallèlement, je fais en ce moment une expérience d'enregistrer automatiquement (toutes les 20 mn avec un "Cron") une nouvelle vidéo avec Ffmpeg à partir de mon ordi principal et de l'adresse locale http://192.168.1.7:13812/?action=stream et ça marche très bien:
http://104.207.144.52/saved-webcam.html ou directement https://dl.dropboxusercontent.com/u/195 ... /nbbc.webm
La nouvelle vidéo a le même nom et écrase donc automatiquement la précédente. Ça permet donc d'avoir toujours la même URL et de ne pas encombrer ma Dropbox.
Le gros inconvénient, c'est que Ffmpeg me "pompe" le CPU un max pendant environ 2 mn toutes les 20 mn, le temps d'encoder la vidéo en video.webm. Parfois, j'ai même du mal à taper un texte tellement ça rame... Je ne suis pas sûr qu'un Raspi -même de dernière génération- pourrait supporter ça... Sans parler qu'il risque de chauffer exagérément.
Je continue donc de chercher à améliorer ça... Ma prochaine expérience consistera (avec Ffmpeg) à conserver le flux d'origine sans quasiment l'encoder (si c'est possible) donc en Mpeg.
Pour le FTP, je pense qu'il faudrait utiliser un disque externe. Là, on est tranquille.
Pour info, j'ai fait plusieurs expériences réussies de live-streaming y compris sur Youtube, mais le gros problème -dans tous les cas- était l'utilisation intensive du CPU. On peut le faire occasionnellement mais pas 24/24 h à moins d'avoir une machine sur-puissante et dédiée seulement à ça... Alors que mjpg-streamer reste très sobre en ressources. Enfin, c'est mon avis.
Note: Avec Mjpg-Streamer, je n'utilise pas le serveur HTTP natif, mais Lighttpd. J'ai constaté avec ce dernier une sensible amélioration du flux.
Ma webcam (image fixe)

Je sais que ce sujet date un peu, mais il est toujours d'actualité, non?
Pour ma part, j'utilise une Logitech c-270 (installée dans un ancien spot halogène) reliée à mon Raspi 2, en 12 secondes par images. Les images sont accessibles en local: http://192.168.1.7:13812/?action=stream et par Internet: http://nbbc.ddns.net:13812/?action=stream.
Ça fonctionne très bien. Mais bon, mon objectif est seulement de montrer la vue et non pas de l'enregistrer. C'est une weather-cam et non pas une caméra de surveillance. La webcam est affichée sur mon site meteo http://nettle-bay-beach-club-sxm.com/nbbcmeteo.html et quelques autres.
Je crois cependant qu'il est possible d'envoyer les images sur un serveur FTP. Mais le FTP, c'est lent et limité (pas de streaming, 1 image/sec maxi ou alors des vidéos séparées). J'en ai fait l'expérience avec Motion et un autre.
Personnellement, je préfère (dans ce cas) utiliser mon client Dropbox. Ça fonctionne nickel. Mais là encore, il ne semble pas possible de faire du vrai streaming.
Parallèlement, je fais en ce moment une expérience d'enregistrer automatiquement (toutes les 20 mn avec un "Cron") une nouvelle vidéo avec Ffmpeg à partir de mon ordi principal et de l'adresse locale http://192.168.1.7:13812/?action=stream et ça marche très bien:
http://104.207.144.52/saved-webcam.html ou directement https://dl.dropboxusercontent.com/u/195 ... /nbbc.webm
La nouvelle vidéo a le même nom et écrase donc automatiquement la précédente. Ça permet donc d'avoir toujours la même URL et de ne pas encombrer ma Dropbox.
Le gros inconvénient, c'est que Ffmpeg me "pompe" le CPU un max pendant environ 2 mn toutes les 20 mn, le temps d'encoder la vidéo en video.webm. Parfois, j'ai même du mal à taper un texte tellement ça rame... Je ne suis pas sûr qu'un Raspi -même de dernière génération- pourrait supporter ça... Sans parler qu'il risque de chauffer exagérément.
Je continue donc de chercher à améliorer ça... Ma prochaine expérience consistera (avec Ffmpeg) à conserver le flux d'origine sans quasiment l'encoder (si c'est possible) donc en Mpeg.
Pour le FTP, je pense qu'il faudrait utiliser un disque externe. Là, on est tranquille.
Pour info, j'ai fait plusieurs expériences réussies de live-streaming y compris sur Youtube, mais le gros problème -dans tous les cas- était l'utilisation intensive du CPU. On peut le faire occasionnellement mais pas 24/24 h à moins d'avoir une machine sur-puissante et dédiée seulement à ça... Alors que mjpg-streamer reste très sobre en ressources. Enfin, c'est mon avis.
Note: Avec Mjpg-Streamer, je n'utilise pas le serveur HTTP natif, mais Lighttpd. J'ai constaté avec ce dernier une sensible amélioration du flux.
Ma webcam (image fixe)
