Logiciel simple de stopmotion, version webcam, en cours d'élaboration
Go to file
ABelliqueux 5ab96d1123 Add liveview only, fix ffmpeg QT export, default config 2024-11-16 18:26:11 +01:00
locales Refactor cam settings, add key bindings for wb, exp, flip image 2024-11-01 09:22:54 +01:00
Tuffy_Bold.ttf Remove tk dep, use date for session option 2024-09-09 14:19:06 +02:00
config.toml Add liveview only, fix ffmpeg QT export, default config 2024-11-16 18:26:11 +01:00
frame_opencv.py Add liveview only, fix ffmpeg QT export, default config 2024-11-16 18:26:11 +01:00
readme.md Key binding section 2024-11-10 18:51:07 +01:00
requirements.txt Add up/down binding, fix OOR bug 2024-09-11 12:08:42 +02:00
serialutils.py fix playback timing, apply cam settings, rest wb/exp key binding 2024-09-11 20:21:33 +02:00
stopi2.sh Add launch script 2024-09-12 18:07:56 +02:00

readme.md

Stopi2

Seconde version du script python stopi destiné à être utilisé avec une télécommande picote.

Cette version utilise opencv et ne fonctionne pour le moment qu'avec une webcam.
Encore une fois, l'objectif est de créer un logiciel simple et minimaliste dans son interface, dont les caractéristiques sont les suivantes :

  • Affichage des images en plein écran sans interface : toutes les fonctions utilisent quelques touches du clavier.
  • Pelure d'oignon entre la dernière image et le flux vidéo.
  • Un seul fichier de configuration permet de régler les options (résolution, images/secondes, mirroir vertical/horizontal, )
  • Auto configuration de la camera au démarrage (exposition et balance des blancs)
  • Prévisualisation de l'animation
  • Exportation vidéo avec ffmpeg
  • Interface localisée (anglais et français disponible pour le moment.)

Banc de test

Ce script a été testé avec une webcam compatible V4L2, et plus précisement une "showmewebcam" à base de rpi 0 et d'un module caméra v2 (8Mp), et un ordinateur classique sous Debian.
Les contributions et rapports de bugs sont les bienvenus !

Installation

Dans un terminal :

  1. (Utilisateurs Windows) Activer le sous système Linux version 2 (WSL2) et installer Debian.
  2. Installer les dépendances suivantes :
    # Avec une distribution basée sur Debian (Ubuntu, Mint...)
    sudo apt install --no-install-recommends --no-install-suggests git ffmpeg python3-tk python3-pip python3-venv
    
    • (Optionnel) Pour installer un environnement graphique minimal sur une installation console : sudo apt install --no-install-recommends --no-install-suggests openbox xserver-xorg xinit pcmanfm gmrun lxterminal hsetroot unclutter plymouth plymouth-themes
  3. Cloner le dépôt dans le dossier de votre choix : git clone https://git.arthus.net/arthus/stopi2.git
  4. Aller dans répertoire du projet : cd stopi2
  5. Créer un environnement virtuel (venv) Python : python -m venv ./
  6. Activer l'environnement virtuel avec source bin/activate
  7. Installer les dépendances python : pip install -r requirements.txt
  8. Brancher la caméra
  9. Activer l'éxécution du script : chmod +x stopi2.sh
  10. Lancer le script : ./stopi2.sh

Fonction par touches

L'idéal est d'utiliser une télécommande picote mais le logiciel est aussi pilotable via un clavier/clavier numérique.

Fonction Boutton Clavier
Capturer une image 🟢 touche Espace ou 0 sur le clavier numérique
Supprimer une image 🔴 touche Suppr, touche Backspace ou touche - sur le clavier numérique
Lecture de l'animation Alt + 🟢 touches Entrée
Exporter l'animation Alt + 🔴 touche E ou * sur le clavier numérique
Image suivante 🔵 touche flèche droite ou 6 sur le clavier numérique
Image précédente 🟡 touche flèche gauche ou 4 sur le clavier numérique
Aller à la dernière image Alt + 🔵 touche flèche bas ou 2 sur le clavier numérique
Aller à la première image Alt + 🟡 touche flèche haut ou 8 sur le clavier numérique
Activer/Désactiver onionskin touche O ou / sur le clavier numérique
Quitter le logiciel n/a touche Échap, Alt-F4 ou Ctrl-C
Réglages de la caméra (compatible showmewebcam seulement)
Réinitialiser la caméra Alt + touche R ou 9 sur le clavier numérique
Changer le mode de balance des blancs touche W ou 7 sur le clavier numérique
Changer le mode d'exposition Alt + ① touche X ou 1 sur le clavier numérique
Rotation de 180° de la capture vidéo ②, Alt + ② touche F ou 3 sur le clavier numérique

Installation Kiosque

Pour créer un kiosque d'animation à partir d'une installation minimale de Debian :

  1. Installer Debian pour un environnement console avec environnement graphique minimal, par exemple: sudo apt install --no-install-recommends --no-install-suggests openbox xserver-xorg xinit hsetroot unclutter
  2. Suivre les étapes d'installation ci-dessus.
  3. Activer le login automatique de votre utilisateur au démarrage :
sudo systemctl edit getty@tty1.service 
# Ajout du contenu suivant dans le fichier créé:
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --skip-login --nonewline --noissue --noclear --autologin arthus %I $TERM
  1. Ajouter ce contenu à '~/.bash_login' :
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
  exec startx &>/dev/null
fi
  1. Ajouter ce contenu à '~/.xinitrc' :
 #!/bin/sh

# /etc/X11/xinit/xinitrc
#
# global xinitrc file, used by all X sessions started by xinit (startx)

# invoke global X session script
. /etc/X11/Xsession

exec openbox-session
  1. Ajouter ce contenu à '~/.config/openbox/autostart.sh' :
#!/bin/env bash
# Change X keyboard mapping
setxkbmap fr
# Set background color
hsetroot -solid "#8393CC"
# Hide mouse after 0.2 seconds
unclutter -idle 0.2 &
# Start script
/home/$USER/stopi2.sh &

Au redémarrage, la session graphique devrait démarrer automatiquement.

Démarrage 'silencieux'

Pour un démarrage sans aucun texte avant la session graphique, ajouter les lignes suivantes à /etc/default/grub :

GRUB_HIDDEN_TIMEOUT=5
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_GFXMODE=1920x1080

et modifier la ligne : GRUB_CMDLINE_LINUX_DEFAULT="quiet en : GRUB_CMDLINE_LINUX_DEFAULT="quiet splash loglevel=3

Puis configurer plymouth : sudo plymouth-set-default-theme

Appliquer les modifs avec sudo update-grub.