====== Projet Selfilm dans le cadre de la streetsession de Saint-Nazaire ====== Ce projet initié par Ollivier Moreels consiste en gros à une personne de se filmer dans une salle sous 3 plans différents sur des durées de 30s et de visionner le résultat parmi un mixage réalisé à distance dans une autre salle. Il y a 3 caméras vidéo pilotées par des Raspberry Pi et 1 PC sous APODIO qui fait le mixage grace à un patch PD ( réalisé par Romain Papion APO33 ) ===== Installation de Raspberry Pi ===== On peu le faire de façon classique avec une raspbian à jour, nous n'aurons pas besoin de grand chose pour cette partie caméra vidéo. http://downloads.raspberrypi.org/raspbian_latest.torrent **Pistes :** * http://wiki.labomedia.org/index.php/Raspberry_Pi#Raspbian * http://www.raspbian.org/RaspbianImages * http://www.raspberrypi.org/downloads/ Je vous laisse trouver comment mettre l'image sur une SD genre, une fois décompressée dd if=2014-06-20-wheezy-raspbian.Dd of=/dev/sdc bs=4M Pensez a faire : * une mise a jour du tout : apt-get update * raspi-config pour déclarer le module camera ===== dépendances ===== Suivre http://www.epingle.info/?p=2756 pour l'installation de la caméra et http://www.framboise314.fr/une-camera-de-surveillance-video-avec-le-raspberry-pi/ de http://www.raspberrypi.org/forums/viewtopic.php?p=377587 cd /tmp sudo apt-get install -y libjpeg62 libjpeg62-dev libavformat53 libavformat-dev libavcodec53 libavcodec-dev libavutil51 libavutil-dev libc6-dev zlib1g-dev libmysqlclient18 libmysqlclient-dev libpq5 libpq-dev lftp wget https://www.dropbox.com/s/xdfcxm5hu71s97d/motion-mmal.tar.gz pour l'installation de motion pour raspberry, **nous n'exploiterons QUE la partie détection , raspivid faisant lui l'enregistrement**. ainsi /etc/motion-mmalcam.conf a été modifié: {{:pcp:motion-mmalcam.conf.txt|}} pour sortir dès que quelque chose bouge. ===== 2 scripts: ===== **1 /etc/rc.local** Il est utilisé au lancement de la raspberry et lance a son tour le script vidéo #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi ifconfig eth0:1 192.168.1.34 # pin 11 = GPIO17 su root -c "echo 17 > /sys/class/gpio/export" su root -c "echo out > /sys/class/gpio/gpio17/direction" su root -c "/usr/local/bin/streetcapture cam1 10000 192.168.1.232 ubuntu ubuntu &" exit 0 **2 /usr/local/bin/streetsession** C'est lui qui en boucle - détecte grace à motion - enregistre les vidéo grace à raspivid - les transfert par ltfp #!/bin/bash # streetcapture CAM PRISE IP user pass # programme de transfert automatique de video # le programme boucle # le programme motion detecte un mouvement et sort # la led s'allume # raspivid prend PRISE secondes de video # la led s'éteind # la video est transmise # # set -x # mode debug # # ménage cd /tmp rm -f motion.log killall -9 motion killall -9 raspivid killall -9 lftp # PARAMETRES # declaration directe des GPIO # pin 11 = GPIO17 deja configuree par /etc/rc.local #echo 17 > /sys/class/gpio/export # une seule fois #echo out > /sys/class/gpio/gpio17/direction # CAM : Nom du compteur vidéo if [ -n "$1" ] then CAM=$1 else CAM="cam1" fi # PRISE : durée de la prise de vue en miliseconde if [ -n "$2" ] then PRISE=$2 else PRISE=10000 fi #IP USER PASS : IP distante user et password de transfert lftp if [ -n "$3" -a -n "$4" -a -n "$5" ] then IP_DISTANTE=$3 USER_DISTANT=$4 PASSWORD=$5 else IP_DISTANTE=192.168.1.199 USER_DISTANT=ubuntu PASSWORD=ubuntu fi # existante d'un ancien compteur if [ -f /tmp/compteur ] then CPT=`cat /tmp/compteur` else CPT=0 fi # test présence caméra, attente de 6s obligatoire cd /tmp raspistill -o test.jpg & sleep 6 if [ -s test.jpg ] then # ok détection # boucle infinie while true do # détection par motion # motion sort dès la détection de mouvement motion -c /etc/motion-mmalcam.conf CPT=`expr $CPT + 1` # sauv de CPT echo "$CPT" > /tmp/compteur # LED allumée echo 1 > /sys/class/gpio/gpio17/value # raspivid -t $PRISE -o /tmp/video.h264 # LED éteinte echo 0 > /sys/class/gpio/gpio17/value # transcodage h264 en mpeg4 VIDEO=$CAM"_"$CPT".mp4" MP4Box -fps 24 -add video.h264 $VIDEO # transfert par lftp lftp sftp://$USER_DISTANT:$PASSWORD@$IP_DISTANTE -e "\ kill all; \ cd /tmp; \ put $VIDEO; \ bye" # on ne garde pas la vidéo rm -f $VIDEO done fi # FIN exit 0 Au final : {{:pcp:streetsession.tgz|}} Pour un futur : Python piste http://picamera.readthedocs.org/en/latest/quickstart.html