103 lines
4.1 KiB
Markdown
103 lines
4.1 KiB
Markdown
# Stopi2
|
|
|
|
Seconde version du script python [stopi](https://git.arthus.net/arthus/stopi)
|
|
|
|
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](https://fr.wikipedia.org/wiki/Pelure_d'oignon#Sciences_et_techniques) 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](https://ffmpeg.org/)
|
|
* 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 un ordinateur classique sous [Debian](https://debian.org), et plus précisement une ["showmewebcam"](https://github.com/showmewebcam/showmewebcam) à base de rpi 0 et d'un module caméra v2 (8Mp).
|
|
Les contributions et rapports de bugs sont les bienvenus !
|
|
|
|
## Installation
|
|
|
|
Dans un terminal :
|
|
|
|
0. (Utilisateurs Windows) Activer le [sous système Linux **version 2** (WSL2)](https://learn.microsoft.com/fr-fr/windows/wsl/install) et installer Debian.
|
|
1. 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](https://debian-facile.org/doc:install:installation-minimale) : `sudo apt install --no-install-recommends --no-install-suggests openbox xserver-xorg xinit pcmanfm gmrun lxterminal hsetroot unclutter plymouth plymouth-themes`
|
|
2. Cloner de dépôt dans le dossier de votre choix : `git clone https://git.arthus.net/arthus/stopi2.git`
|
|
3. Aller dans répertoire du projet : `cd stopi2`
|
|
4. Créer un environnement virtuel (venv) Python : `python -m venv ./`
|
|
5. Activer l'environnement virtuel avec `source bin/activate`
|
|
6. Installer les dépendances python : `pip install -r requirements.txt`
|
|
7. Brancher la caméra
|
|
8. Activer l'éxécution du script : `chmod +x stopi2.sh`
|
|
9. Lancer le script : `./stopi2.sh`
|
|
|
|
## Installation Kiosque
|
|
|
|
Pour créer un kiosque d'animation à partir d'une installation minimale de Debian :
|
|
1. Installer Debian pour un environnement console.
|
|
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
|
|
```
|
|
4. Ajouter ce contenu à '~/.bash_login' :
|
|
```
|
|
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
|
|
exec startx &>/dev/null
|
|
fi
|
|
```
|
|
5. 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
|
|
```
|
|
6. 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/stopi.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`. |