64 lines
1.7 KiB
Bash
64 lines
1.7 KiB
Bash
#!/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 ---"
|