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' | ||
+ | |||
+ | http:// | ||
+ | |||
+ | **Pistes :** | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | Je vous laisse trouver comment mettre l' | ||
+ | < | ||
+ | |||
+ | Pensez a faire : | ||
+ | * une mise a jour du tout : < | ||
+ | * raspi-config pour déclarer le module camera | ||
+ | |||
+ | ===== dépendances ===== | ||
+ | Suivre http:// | ||
+ | et | ||
+ | http:// | ||
+ | de http:// | ||
+ | |||
+ | < | ||
+ | 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:// | ||
+ | </ | ||
+ | pour l' | ||
+ | |||
+ | ainsi / | ||
+ | ===== 2 scripts: ===== | ||
+ | |||
+ | **1 / | ||
+ | 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 [ " | ||
+ | printf "My IP address is %s\n" " | ||
+ | fi | ||
+ | |||
+ | ifconfig eth0:1 192.168.1.34 | ||
+ | # pin 11 = GPIO17 | ||
+ | su root -c "echo 17 > / | ||
+ | su root -c "echo out > / | ||
+ | su root -c "/ | ||
+ | |||
+ | exit 0 | ||
+ | |||
+ | **2 / | ||
+ | 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' | ||
+ | # raspivid prend PRISE secondes de video | ||
+ | # la led s' | ||
+ | # 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 / | ||
+ | #echo 17 > / | ||
+ | #echo out > / | ||
+ | |||
+ | # CAM : Nom du compteur vidéo | ||
+ | if [ -n " | ||
+ | then | ||
+ | CAM=$1 | ||
+ | else | ||
+ | CAM=" | ||
+ | fi | ||
+ | # PRISE : durée de la prise de vue en miliseconde | ||
+ | if [ -n " | ||
+ | then | ||
+ | PRISE=$2 | ||
+ | else | ||
+ | PRISE=10000 | ||
+ | fi | ||
+ | #IP USER PASS : IP distante user et password de transfert lftp | ||
+ | if [ -n " | ||
+ | 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 / | ||
+ | then | ||
+ | CPT=`cat / | ||
+ | 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 / | ||
+ | CPT=`expr $CPT + 1` | ||
+ | # sauv de CPT | ||
+ | echo " | ||
+ | # LED allumée | ||
+ | echo 1 > / | ||
+ | # | ||
+ | raspivid -t $PRISE -o / | ||
+ | # LED éteinte | ||
+ | echo 0 > / | ||
+ | # transcodage h264 en mpeg4 | ||
+ | VIDEO=$CAM" | ||
+ | MP4Box -fps 24 -add video.h264 $VIDEO | ||
+ | # transfert par lftp | ||
+ | lftp sftp:// | ||
+ | kill all; \ | ||
+ | cd /tmp; \ | ||
+ | put $VIDEO; \ | ||
+ | bye" | ||
+ | # on ne garde pas la vidéo | ||
+ | rm -f $VIDEO | ||
+ | done | ||
+ | fi | ||
+ | # FIN | ||
+ | exit 0 | ||
+ | </ | ||
+ | |||
+ | Au final : {{: | ||
+ | |||
+ | Pour un futur : | ||
+ | |||
+ | Python piste http:// | ||