#!/bin/bash shopt -s nocaseglob # --- 1. CONFIGURATION DU RÉPERTOIRE --- # On récupère l'argument 1 s'il existe, sinon on reste sur le répertoire courant BASE_DIR="${1:-.}" # Définition des dossiers par rapport à la base SOURCE_DIR="$BASE_DIR/rushs" DEST_DIR="$BASE_DIR/videos" # Vérification que le dossier source existe if [ ! -d "$SOURCE_DIR" ]; then echo "❌ Erreur : Le dossier source $SOURCE_DIR n'existe pas." exit 1 fi # Création du dossier de destination s'il n'existe pas mkdir -p "$DEST_DIR" echo "--- DÉBUT DE LA COMPRESSION ---" echo "📂 Répertoire racine : $BASE_DIR" echo "📥 Source : $SOURCE_DIR" echo "📤 Destination : $DEST_DIR" # 2. BOUCLE DE COMPRESSION for f in "$SOURCE_DIR"/*.{mp4,mov}; do # Vérification si des fichiers existent [ -e "$f" ] || continue # Récupération du nom de fichier sans le chemin filename=$(basename "$f") echo "🎬 Compression de : $filename ..." # Compression avec accélération matérielle Mac (videotoolbox) ffmpeg -i "$f" \ -tag:v hvc1 \ -c:v hevc_videotoolbox \ -b:v 10000k \ -g 60 \ -bf 2 \ -profile:v main \ -pix_fmt yuv420p \ -r 60 \ -c:a aac \ -b:a 128k \ -movflags +faststart \ "$DEST_DIR/$filename" \ -y -loglevel error # Comparaison de taille if [ -f "$DEST_DIR/$filename" ]; then orig_size=$(du -h "$f" | cut -f1) new_size=$(du -h "$DEST_DIR/$filename" | cut -f1) echo "✅ Terminé : $filename ($orig_size -> $new_size)" else echo "⚠️ Erreur lors de la compression de $filename" fi done shopt -u nocaseglob echo "--- OPÉRATION TERMINÉE ---"