====== 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