Script: Horloge vidéo

Matériel nécessaire

Installation

Flasher Rpi OS lite

Flasher une image de Rpi OS lite sur une carte SD.

Préparation du système : SSH, Clavier, autologin et montage USB

Le clavier étant en qwerty par défaut, il faut tapper 'q' à la place de 'a'

 login: pi
 password: raspberry

1.System options > Boot / Auto login > console automatic login
5.Localisation Options > Keyboard > Generic 105-key > Other > French > Right Alt > Right Ctrl
3.Interface Options > SSH > enable SSH

Installation du lecteur vidéo 'omxplayer'

sudo apt update
sudo apt install -y omxplayer

Montage automatique des périphériques USB

Par défaut, les supports USB seront montés dans /media/usbX ou X est un nombre de 0 à 7.

VĂ©rification du montage

Pour vérifier que le système de fichier est monté, utiliser la commande df :

df -h | grep usb

/dev/sda1       7.2G  6.5G  732M  91% /media/usb0

Installation du script videoclock

cd /home/pi
wget https://wiki.arthus.net/assets/videoclock.sh
chmod +x videoclock.sh

Copie des vidéos

Copier les vidéos dans le dossier utilisateur /home/pi/. Le script cherche par défaut des fichiers dont le nom suit le schéma HHMM.mp4, HH étant l'heure (0-24) et MM les minutes (0-60).

Pour copier les fichiers vidéos de type *.mp4 de la clé sur la carte sd :

cp /media/usbX/*.mp4 /home/pi

Adapter le 'usbX' pour correspondre au point de montage réel du support usb.

DĂ©marrage automatique du script au lancement de la rpi

Éditer le fichier /etc/rc.local et y ajouter la ligne suivante ; /home/pi/videoclock.sh :

# ajout de la ligne
echo "/home/pi/videoclock.sh" | sudo tee -a /etc/rc.local
# ajout du bit d'Ă©xecution'
sudo chmod +x /etc/rc.local

Redémarrer la rpi.

sudo reboot

Le script

#!/bin/bash
# By default, videos should be in the /home/pi/ folder with this script.
# Be sure to set the execution bit with : chmod +x videoclock.sh
# Put that line in /etc/rc.local
# /home/pi/videoclock.sh
# Optionnaly, you can use :
# setsid /home/pi/videoclock.sh >/dev/null 2>&1 < /dev/null &
# to run the script as a daemon.
# Video file extension
EXT=".mp4"
# Video files path
VIDEOFILESFOLDER="./"
# Video player command 
# RPI's omxplayer is used as default
PLAYER="omxplayer"
# PLAYER="mpv"
# Keep track of old time
OLTIME="0000"
while true; do
    # Get date in format HHMM
    TIME=`date +"%H%M"`
    # Get seconds for offset
    OFFSET=`date +"%S"`
    if [ -f $VIDEOFILESFOLDER$TIME$EXT ] && [ $TIME != $OLTIME ] ;then
        OLTIME=$TIME
        if [ $PLAYER == "omxplayer" ];then
            $PLAYER -l 00:00:$OFFSET $OLTIME$EXT &
        elif [ $PLAYER == "mpv" ];then
            $PLAYER --start=00:$OFFSET $OLTIME$EXT &
        fi
    else
        echo "No video to load, waiting a bit..."
    fi
    sleep 10
done

Image disque

Une image disque pré-configurée est disponible ici :
https://wiki.arthus.net/assets/videoclock-2021-09-01.7z

Au premier lancement, il est nécessaire :

Sources

https://raspberrypi.stackexchange.com/questions/100312/raspberry-4-usbmount-not-working/107449#107449
https://stackoverflow.com/questions/19233529/ddg#19235243