======VideoThon Pure Data Linux====== ===== Utilisation du VidéoThon ===== ==== Régler les paramètres de la webcam ==== lancer guvcview (avant de lancer Pure Data), effectuer les réglages et refermer le tout, les réglages doivent être conservés dans Pure Data guvcview ou en ligne de commande : faire apparaitre tous les réglages v4l2-ctl -d /dev/video1 -L puis par exemple : v4l2-ctl -d /dev/video1 -c focus_auto=0 pour virer l'autofocus auto v4l2-ctl -d /dev/video1 -c focus_absolute=3 pour régler la valeur du focus de façon absolue, ces 2 dernières lignes de commande sont intégrées au script de lancement du videothon ==== Lancer le videothon ==== - Lancer le patch Pure Data : La fenêtre doit se mettre en plein écran, possibilité de la fermer avec la touche ESC - Ecran d'accueil "Le VidéoThon récole vos messages" - Appuyer sur la barre espace - Ecran "Vous avez 30 secondes maxi d'enregistrement, Appuyez sur le bouton pour démarrer, ré-appuyer pour arrêter l'enregistrement avant les 30 secondes" - Appuyer sur la barre espace : compte à rebours 4-3-2-1-0 > l'enregistrement se lance - Appuyer sur la barre espace pour arrêter l'enregistrement avant les 30 secondes - Ecran "Merci" et retour à l'étape 1 au bout de 2 secondes \\ {{media_02:2-information.jpg|fig:centré|500px}}\\ ===== Création d'un VidéoThon FLOSS avec Pure Data sous Linux ===== ==== Installation Linux ==== ==== Tests & post installation ==== === Matériel === == Webcam == sudo apt-get install v4l-utils uvcdynctrl guvcview v4l2ucp Tester la webcam lsusb Voir les périphériques ls /dev/vid* Infos v4l2 v4l-info /dev/video1 Les controles disponibles v4l2-ctl -d /dev/video1 -l Changer un parametre de controle v4l2-ctl -s pal -d /dev/video1 (pour passer en pal une carte d'acquisition) Les formats disponibles v4l2-ctl -d /dev/video1 --list-formats-ext Le format actuellement utilisé par la webcam v4l2-ctl -d /dev/video1 -V Changer la taille de capture de la webcam v4l2-ctl -d /dev/video1 --set-fmt-video=width=640,height=360 pour lister les formats d'une camera uvcdynctrl -d /dev/video1 -f voir tous les réglages avec une interface graphique guvcview changer les paramètres de la webcam quand Pure Data l'accapare v4l2ucp == Audio == Lister les périphériques d'enregistrement arecord -l Capture l'audio avec Alsa : https://trac.ffmpeg.org/wiki/Capture/ALSA === Logiciel === == FFmpeg == Compilation de ffmpeg avec support v4l2, jack et H264 (les versions statiques et des dépots tout comme avconv ne supportent pas systématiquement v4l2, jack et H264, d'où compil) git clone [[https://github.com/FFmpeg/FFmpeg.git| https://github.com/FFmpeg/FFmpeg.git]]\\ cd FFmpeg Installation des dépendances sudo apt-get install -y --force-yes autoconf automake build-essential libass-dev libfreetype6-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev Une deuxième couche pour les trucs plus spécifiques sudo apt-get install yasm libx264-dev libjack-jackd2-dev libasound2-dev libmp3lame-dev libopus-dev Config en intégrant les trucs spé ./configure --enable-libopus --enable-gpl --enable-libx264 Vérifier que les encoders et sources sont bien là et envoyer la compilation make Install sudo make install FFmpeg static : http://johnvansickle.com/ffmpeg/ pour connaitre les formats disponibles : ffmpeg -formats == v4l2loopback == git clone [[https://github.com/umlaeute/v4l2loopback.git| https://github.com/umlaeute/v4l2loopback.git]]\\ cd v4l2loopback make KCPPFLAGS="-DMAX_DEVICES=10" sudo make install ou sudo apt-get install v4l2loopback-dkms v4l2loopback-utils Test sudo modprobe v4l2loopback video_nr=10,11,12,13,69,99  Ajouter le chargement du module sudo nano /etc/modules ajouter la ligne v4l2loopback video_nr=10,11,69 sera actif au prochain démarrage == Pure data == Installer Pure data et des librairies complémentaires (toutes ne sont pas nécessaires, mais possible d'envoyer toute la ligne de commande, les éléments déjà installés seront pris en compte) : sudo apt-get install puredata puredata-core puredata-doc puredata-extra puredata-import puredata-gui puredata-utils pd-cyclone pd-ggee pd-hid pd-iemlib pd-libdir pd-motex pd-pdstring pd-purepd pd-zexy gem gem-doc gem-extra gem-plugin-gmerlin gem-plugin-jpeg gem-plugin-lqt gem-plugin-magick gem-plugin-mpeg3 gem-plugin-sgi gem-plugin-v4l2 == Le patch PD du Videothon == git clone [[https://github.com/b01xy/videothon.git| https://github.com/b01xy/videothon.git]] ==== Utilisation ==== Lancer le patch ESC pour sortir de la fenêtre en plein écran === Réglages === == Affichage == == Enregistrement vidéo == **Il faut rendre executable le script launch_rec.sh** chmod +x launch_rec.sh chmod +x launch_videothon.sh Adapter le chemin La ligne de commande magique pour encoder en MJPEG (lancée par le script launch_rec.sh : ffmpeg -thread_queue_size 512 -f alsa -i hw:0,0 -thread_queue_size 512 -f video4linux2 -i /dev/video10 -c:v mjpeg -b:v 16M -c:a aac -b:a 320000 -ar 48000 -ac 2 -strict -2 -t $1 videos/VIDEO$(date +%Y-%m-%d-%Hh%M).mkv La ligne de commande magique pour encoder en H264 (mais quelques pbs de desynchro quand fin prématurée) : ffmpeg -thread_queue_size 512 -f alsa -i hw:0,0 -f video4linux2 -i /dev/video10 -c:v libx264 -preset slow -pix_fmt yuv420p -c:a aac -ab 320000 -ar 48000 -ac 2 -strict -2 -t $1 /media/Docs/videothon_TV/videos/VIDEO$(date +%Y-%m-%d-%Hh%M).mkv ça doit marche aussi avec avconv : avconv -f alsa  -f video4linux2 -i /dev/video10 -c:v mjpeg -b:v 16M -c:a aac -b:a 320000 -ar 48000 -ac 2 -strict -2 -t 10 '/media/Docs/videothon_TV/videos/VIDEO$(date +%Y-%m-%d-%Hh%M).mkv' * -thread_queue_size 512 : on allonge la queue pour plus de fluidité audio * -f alsa : on utilise alsa * -i hw:0,0 : le périphérique 0,0 de capture (voir arecord -l) * -f video4linux2 : pour vidéo la source est v4l2 * -i /dev/video10 : le device virtuel 10 fourni par v4l2loopback * -c:v libx264 -preset slow -pix_fmt yuv420p : on encode la vidéo en h264 avec le preset (pas rapide mais qualité) et un paramètre de compatibilité pour les vieux lecteurs * -c:a aac -ab 320000 -ar 48000 -ac 2 : on encode le son en AAC à 320 kbps 48000 Hz Stéréo * -strict -2 : pour faire avaler le code aac expérimental * -t $1 : définit la durée d'enregistrement via le paramètre $1 passé dans le script en argument https://support.octoshape.com/entries/25126002-Encoding-best-practices-using-ffmpeg La ligne de commande magique pour encoder en MJPEG : ffmpeg -thread_queue_size 512 -f alsa -i hw:0,0  -thread_queue_size 512 -f video4linux2 -i /dev/video10 -c:v mjpeg -b:v 16M -c:a aac -ab 320000 -ar 48000 -ac 2 -strict -2 -t $1 videos/VIDEO$(date +%Y-%m-%d-%Hh%M).mkv * -b:v 16M bitrate de l'encodage video * Add the switch "-qscale x".The lower your x, the better is the quality (range 2 to 32, fractions allowed). {{tag>bj pure_data}}