WDPR4100 13 Posted Friday at 01:47 AM Posted Friday at 01:47 AM Tutoriel : Ce script est un outil de maintenance "tout-en-un" qui automatise la compression de vos médias tout en garantissant une compatibilité maximale avec Emby. Il transforme vos fichiers (AVI, MP4, WMV...) en MKV HEVC 10-bit de manière totalement autonome. Pré-requis Indispensables Avant de lancer le script, vous devez installer ces deux moteurs de conversion : HandBrake CLI : Télécharger ici (Essentiel pour la gestion des pistes audio/sous-titres). FFmpeg : Télécharger ici (Sert de moteur de secours si HandBrake échoue). Configuration du Script Ouvrez le fichier .ps1 avec un éditeur de texte (Notepad++ ou VS Code) et vérifiez ces 3 lignes : Les Chemins : Assurez-vous que $HB et $FF pointent vers vos dossiers d'installation. Le Dossier de Travail ($T_DIR) : Par défaut configuré sur Z:\. C'est ici que le fichier est encodé avant d'être déplacé. Choisissez votre disque le plus rapide (SSD) pour gagner du temps. Les Logs ($L_BASE) : Le script crée un historique pour ne jamais ré-encoder un fichier déjà traité. Fonctionnalités Avancées Sélection "Touche Unique" : Plus besoin de taper "Entrée". Appuyez simplement sur la lettre de votre lecteur (S, T, U, etc.) pour lancer l'analyse. Compression Intelligente : Vidéo : Passage en HEVC 10-bit via NVIDIA NVENC (Accélération GPU). Résolution : Redimensionne automatiquement en 1080p (Max Width 1920) pour économiser de l'espace. Audio : Conversion en AAC 192k pour une compatibilité parfaite sur tous les navigateurs et TV. Gestion Multilingue : Le script priorise le Français, mais pour les lecteurs T et W, il conserve automatiquement le Japonais (idéal pour les fans d'Animes). Sécurité Totale : Le script renomme l'original en .old, vérifie l'intégrité du nouveau fichier, et ne supprime l'original que si tout est correct. Comment l'utiliser ? Préparez vos lecteurs : Assurez-vous que vos disques (NAS ou internes) sont bien mappés avec les lettres prévues (S à Y). Lancez PowerShell en Administrateur. Exécutez le script : .\Emby_Optimize.ps1 Choisissez votre cible : Appuyez sur la lettre correspondant au disque à traiter. [!IMPORTANT] Chemin des lecteurs : Si vos disques utilisent d'autres lettres, modifiez simplement la ligne if ("STUVWXY" -notlike "*$SEL*") dans le script pour ajouter les vôtres. Emby_Optimize.ps1 1 1
WDPR4100 13 Posted yesterday at 12:08 AM Author Posted yesterday at 12:08 AM Tutoriel : Optimiseur Emby 10-Bit (V20.5) Ce script est un outil de maintenance automatisé conçu pour uniformiser votre bibliothèque multimédia. Il convertit massivement vos fichiers vers le format HEVC 10-bit, garantissant un gain d'espace disque considérable et une lecture fluide (Direct Play) sur Emby. Évolution : Quoi de neuf dans la V20.5 ? Par rapport à la version 19.3, la V20.5 apporte des optimisations majeures en termes de robustesse, de visibilité et de performance : Multi-Instance (Multi-Fenêtrage) : Le code a été réécrit pour permettre de lancer le script plusieurs fois simultanément. Chaque instance utilise un nom de fichier temporaire unique (temp_Lecteur_Heure.mkv), évitant tout conflit. Scan de Progression Visible : Contrairement à la V19 qui était "silencieuse", la V20.5 affiche en temps réel le scan du disque avec un compteur [X/Total]. Les fichiers déjà traités apparaissent en gris ([IGNORÉ]), vous permettant de voir l'avancement global. Auto-Détection des Outils : Plus besoin de modifier systématiquement les chemins $HB et $FF. Le script cherche désormais HandBrake et FFmpeg directement dans le PATH du système Windows. HandBrake CLI : Télécharger ici (Essentiel pour la gestion des pistes audio/sous-titres). FFmpeg : Télécharger ici (Sert de moteur de secours si HandBrake échoue). Correction Unicode "Blindée" : Utilisation d'une méthode de reconstruction par octets pour l'affichage des accents (Séries, Animés). Cela garantit un menu propre, peu importe la configuration de votre console PowerShell. Priorité Audio Étendue : Le support du Japonais automatique a été étendu au lecteur de T et W. Matériel Minimum pour le Double Encodage Pour lancer deux encodages en même temps (en ouvrant deux fenêtres PowerShell), votre machine doit répondre aux critères suivants : Carte Graphique (GPU) : Une NVIDIA GeForce GTX 1050 ou supérieure (architecture Pascal minimum). Une RTX 3050 Ti (pour ma part) est idéale car elle possède un moteur NVENC de 7ème génération très efficace. Processeur (CPU) : Un processeur avec au moins 4 cœurs / 8 threads (ex: Intel Core i5/i7 ou AMD Ryzen 5). Le CPU s'occupe du décodage et du traitement audio pendant que le GPU encode la vidéo. Mémoire Vive (RAM) : 8 Go minimum (16 Go recommandés pour éviter les ralentissements système). Disque de Travail ($T_DIR) : Un SSD est fortement recommandé pour le dossier temporaire afin d'éviter les goulots d'étranglement lors de l'écriture simultanée de deux flux vidéo lourds. Configuration & Utilisation 1. Pré-requis Installez HandBrake CLI et FFmpeg. Assurez-vous qu'ils sont accessibles dans votre terminal (ajoutés au PATH Windows). 2. Paramétrage Dans le fichier .ps1, vérifiez simplement : $T_DIR : Le dossier où le travail s'effectue (ex: Z:\Encoder_Emby). $L_BASE : Le dossier où les logs de succès sont stockés. 3. Lancement en mode "Turbo" Faites un clic droit sur Emby_Optimize.ps1 > Exécuter avec PowerShell. Choisissez un premier lecteur (ex: Y pour les Films). Ouvrez une deuxième fenêtre du script. Choisissez un second lecteur (ex: T pour les Mangas). Surveillez la charge dans le Gestionnaire des tâches (onglet Performance > GPU > Video Encode). [!IMPORTANT] Rappel sur les Lecteurs Le script est pré-configuré pour les labels suivants : (ma config sur NAS) S : Cartoons / T : Mangas / U : Séries / V : Spectacles / W : Animations / X : Animés / Y : Films. Si vos lettres diffèrent, modifiez la ligne : if ("STUVWXY" -notlike "*$SEL*") { continue } en y ajoutant vos propres lettres de lecteurs. Emby_Optimize_V20.5.ps1
vincen 71 Posted 19 hours ago Posted 19 hours ago Salut Très sympa l'idée et merci pour le partage ! Tu prévois une version Linux ? Merci
WDPR4100 13 Posted 9 hours ago Author Posted 9 hours ago 10 hours ago, vincen said: Salut Très sympa l'idée et merci pour le partage ! Tu prévois une version Linux ? Merci Release : Emby Optimize V20.5 (Version Linux) Voici la conversion du script de maintenance pour serveurs Emby. Cette version Bash est conçue pour automatiser l'encodage H.265 10-bit NVENC sur les systèmes Linux. [!CAUTION] AVERTISSEMENT : Ce script a été porté de PowerShell vers Linux mais n'a pas pu être testé sur une machine physique pour le moment. CONSEIL DE SÉCURITÉ : Avant de lancer le script sur l'intégralité de votre bibliothèque, créez un dossier de test avec 2 ou 3 fichiers vidéos pour vérifier que les chemins, les permissions et l'encodage GPU fonctionnent correctement sur votre configuration. Ce guide vous permet d'installer un script qui automatise la conversion de vos vidéos au format H.265 10-bit en utilisant l'accélération matérielle NVIDIA (NVENC). 1. Prérequis Avant de commencer, votre système doit avoir accès aux outils d'encodage : HandBrake CLI : L'outil de conversion. Pilotes NVIDIA : Pour que votre carte graphique puisse encoder. Installation sur Ubuntu/Debian/Mint : sudo apt update && sudo apt install handbrake-cli -y 2. Le Script (emby_optimize.sh) Copiez l'intégralité du bloc ci-dessous dans un fichier nommé emby_optimize.sh. #!/bin/bash # ============================================================ # OPTIMISEUR EMBY 10-BIT V20.5 (Linux Universel) # ============================================================ # --- CONFIGURATION : MODIFIEZ VOS CHEMINS ICI --- DIR_CARTOONS="/home/$USER/Videos/Cartoons" DIR_MANGAS="/home/$USER/Videos/Mangas" DIR_SERIES="/home/$USER/Videos/Series" DIR_SPECTACLES="/home/$USER/Videos/Spectacles" DIR_ANIMATIONS="/home/$USER/Videos/Animations" DIR_ANIMES="/home/$USER/Videos/Animes" DIR_FILMS="/home/$USER/Videos/Films" # Dossiers techniques T_DIR="/tmp/Encoder_Emby" L_BASE="$HOME/.cache/Emby_Optimize_Logs" # --- LOGIQUE DU SCRIPT --- mkdir -p "$T_DIR" "$L_BASE" show_menu() { clear echo "============================================" echo " OPTIMISEUR EMBY 10-BIT V20.5" echo "============================================" echo "[S] Cartoons [T] Mangas [U] Séries" echo "[V] Spectacle [W] Animations [X] Animés" echo "[Y] Films [Q] Quitter" echo "--------------------------------------------" } if ! command -v HandBrakeCLI &> /dev/null; then echo -e "\e[31m[!] HandBrakeCLI non trouvé. Installez-le d'abord.\e[0m" exit 1 fi while true; do show_menu read -p "Choisissez une catégorie : " SEL SEL=$(echo "$SEL" | tr '[:lower:]' '[:upper:]') [[ "$SEL" == "Q" ]] && break case $SEL in S) ROOT="$DIR_CARTOONS" ; LANG="fra" ;; T) ROOT="$DIR_MANGAS" ; LANG="jpn,fra" ;; U) ROOT="$DIR_SERIES" ; LANG="fra" ;; V) ROOT="$DIR_SPECTACLES" ; LANG="fra" ;; W) ROOT="$DIR_ANIMATIONS" ; LANG="jpn,fra" ;; X) ROOT="$DIR_ANIMES" ; LANG="fra" ;; Y) ROOT="$DIR_FILMS" ; LANG="fra" ;; *) continue ;; esac L_ROOT="${L_BASE}/Logs_${SEL}" if [ ! -d "$ROOT" ]; then echo -e "\e[31m[!] Chemin introuvable : $ROOT\e[0m" sleep 2 ; continue fi echo -e "\e[33m--- SCAN EN COURS : $ROOT ---\e[0m" mapfile -t files < <(find "$ROOT" -type f \( -iname "*.mkv" -o -iname "*.mp4" -o -iname "*.avi" -o -iname "*.mov" \)) total=${#files[@]} current=0 for file in "${files[@]}"; do ((current++)) rel_path="${file#$ROOT/}" log_file="${L_ROOT}/${rel_path%.*}.txt" if [ -f "$log_file" ]; then echo -e "\e[90m[$current/$total] [IGNORE] $(basename "$file")\e[0m" continue fi echo "--------------------------------------------------------" echo -e "[$current/$total] [ACTION] -> $(basename "$file")" TS=$(date +"%H%M%S") work_out="${T_DIR}/temp_${SEL}_${TS}.mkv" HandBrakeCLI -i "$file" -o "$work_out" \ -e nvenc_h265_10bit -q 28 --encoder-preset fast \ --maxWidth 1920 --audio-lang-list "$LANG" \ -E av_aac -B 192 --all-subtitles --markers if [ -f "$work_out" ] && [ $(stat -c%s "$work_out") -gt 1048576 ]; then old_path="${file}.old" mv "$file" "$old_path" final_path="${file%.*}.mkv" if mv "$work_out" "$final_path"; then rm "$old_path" mkdir -p "$(dirname "$log_file")" echo "OK" > "$log_file" echo -e "\e[32m[OK] Terminé.\e[0m" fi fi [ -f "$work_out" ] && rm "$work_out" done echo -e "\n\e[36m--- TERMINÉ ---\e[0m" ; sleep 2 done Configuration du script Ouvrez le fichier emby_optimize.sh et modifiez les variables au début selon votre installation. Variables à adapter : DIR_... : Remplacez les chemins par défaut par les points de montage de vos disques (ex: /mnt/media/Films). T_DIR : Le dossier temporaire où le script va créer le fichier en cours d'encodage. Assurez-vous d'avoir assez d'espace disque ici. L_BASE : Le dossier où seront stockés les fichiers .txt de suivi (pour éviter de ré-encoder un fichier déjà traité). Comment l'essayer ? Copiez le script dans un fichier emby_optimize.sh. Autorisez l'exécution : chmod +x emby_optimize.sh. Testez : Pointez une des variables (ex: DIR_FILMS) vers un dossier de test contenant 1 ou 2 fichiers seulement. Lancez : ./emby_optimize.sh. Si tout fonctionne sur vos fichiers de test, vous pourrez alors l'appliquer à votre base de données complète !
vincen 71 Posted 1 hour ago Posted 1 hour ago Merci pour le partage, je ne peux pas le tester car je n'ai pas de matos NVidia sur mon serveur Emby mais 2 petits points qui me chiffonnent: -> tu convertis tout en HD par défaut ? quid des formats 4K ? Ça serait bien de faire un test sur les fichiers pour garder le format avant de lancer la conversion. -> au lieu d'utiliser un fichier txt pour savoir ce qui a été converti, pourquoi ne pas tout simplement vérifier chaque média pour voir s'il est en HEVC ou pas et convertir uniquement ceux qui ne sont pas en HEVC ?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now