Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 5010

Français • Besoin d'aide : Lecture d'image et de vidéos.

$
0
0
Bonjour à toutes et tous,

Je rencontre un problème avec mon RaspBerry et j'aurais besoin de votre génie. Voici la situation :

Actuellement, une télévision diffuse de manière automatique et en continu des images d'informations. Tout fonctionne correctement grâce à un script en bash. Ce script récupère, diffuse et réactualise le dossier à chaque boucle, en cas de rajout ou de suppression et ce quel que soit le format image (jpg, jpeg, png...) En plus de cela, le script se lance automatiquement lors du démarrage.

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
| @feh_ -Z _ -F _ -Y _ -D _ -20_ -R_200_ /home/admistrateur/home/administrateur/Desktop/DiffusionTV

Arrive le problème :
En plus des images, je souhaiterais pouvoir diffuser depuis ce même dossier des vidéos (mp4, mkv, avi, gif...)
Il faut donc que les fichiers soient lus et diffusés, et que le dossier soit réactualisé à chaque boucle en cas d'ajout ou de suppression d'un fichier. La subtilité résidant dans les formats qui s'enchaînent (vidéos et images) passant de l'un à l'autre.

N'étant pas un pro du domaine, j'ai essayé de modifier le script comme ceci :

#!/bin/bash

# Répertoire contenant les médias
MEDIA_DIR="((Chemin d'accès))"

# Extensions des fichiers
IMAGE_EXTENSIONS="jpg jpeg png gif bmp"
VIDEO_EXTENSIONS="mp4 mkv avi mov"

# Durée d'affichage des images
IMAGE_DURATION=20

# Image
function is_image() {
local file_extension="${1##*.}"
[[ " $IMAGE_EXTENSIONS " =~ " $file_extension " ]]
}

# Video
function is_video() {
local file_extension="${1##*.}"
[[ " $VIDEO_EXTENSIONS " =~ " $file_extension " ]]
}

# Boucle infinie
while true; do
# Actualiser la liste des fichiers dans le dossier
FILES=($(ls "$MEDIA_DIR" 2>/dev/null | sort))

# Vérifier si des fichiers existent
if [[ ${#FILES[@]} -eq 0 ]]; then
echo "Aucun fichier trouvé dans $MEDIA_DIR"
sleep 5
continue
fi

# Lire chaque fichier
for FILE in "${FILES[@]}"; do
FULL_PATH="$MEDIA_DIR/$FILE"

if is_image "$FILE"; then
echo "Affichage des images dans le dossier : $MEDIA_DIR"
feh --fullscreen --hide-pointer --auto-zoom --slideshow-delay $IMAGE_DURATION "$MEDIA_DIR" &
sleep $(($IMAGE_DURATION * $(ls "$MEDIA_DIR" | wc -l)))
killall feh
break # Sortir de la boucle car toutes les images sont affichées
elif is_video "$FILE"; then
echo "Lecture de la vidéo : $FULL_PATH"
cvlc --fullscreen --play-and-exit "$FULL_PATH"
fi
done
done

Comme vous vous en doutez, le script ne fonctionne pas. J'imagine qu'il est possible de faire tourner des vidéos et des images en continu, mais jusqu'ici, je n'ai pas trouvé la solution.
J'ai sûrement oublié des choses, n'hésitez pas à me prévenir, merci d'avance pour votre aide.

Statistics: Posted by Hanaani — Mon Nov 25, 2024 9:25 am — Replies 0 — Views 10



Viewing all articles
Browse latest Browse all 5010

Trending Articles