Outils pour utilisateurs

Outils du site


pcp:selfilm

Différences

Ci-dessous, les différences entre deux révisions de la page.


pcp:selfilm [2024/02/09 17:10] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== 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
 +<code>dd if=2014-06-20-wheezy-raspbian.Dd of=/dev/sdc bs=4M</code>
 +
 +Pensez a faire :
 +  * une mise a jour du tout : <code>apt-get update</code>
 +  * 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
 +
 +<code>
 +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
 +</code>
 +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 
 +
 +<code>
 +#!/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
 +</code>
 +
 +Au final : {{:pcp:streetsession.tgz|}}
 +
 +Pour un futur :
 +
 +Python piste http://picamera.readthedocs.org/en/latest/quickstart.html