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
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
Lister les périphériques d'enregistrement
arecord -l
Capture l'audio avec Alsa : https://trac.ffmpeg.org/wiki/Capture/ALSA
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
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
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
git clone [[https://github.com/b01xy/videothon.git| https://github.com/b01xy/videothon.git]]
Lancer le patch
ESC pour sortir de la fenêtre en plein écran
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'
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