Une solution industrielle en PowerShell conçue pour auditer, encoder, générer du contenu tiers et standardiser intelligemment vos bibliothèques de serveurs médias Emby / Jellyfin / Plex au format HEVC 10-bit.
Le script orchestre et maintient à jour HandBrakeCLI, FFmpeg (FFprobe) et MKVToolNix pour maximiser le DirectPlay tout en verrouillant la sécurité de vos métadonnées.
Contrairement aux anciennes versions linéaires, la V37 exécute une logique avancée à 4 étapes pour chaque volume réseau/catégorie cible (S: à Y:) :
- Encodage Vidéo Initial (
HandBrakeCLI) : Convertit tous les fichiers non conformes en HEVC 10-bit. - Génération Média Dynamique (
FFmpeg) : Extrait automatiquement des extraits vidéos pour créer des bandes-annonces (trailers) et des arrière-plans animés (backdrops) avec audio. - Sécurisation des NFO Racines (
Séries) : Analyse et verrouille les fichiers.nfopour figer vos titres personnalisés. - Optimisation Spécifique In-Place (
mkvpropedit) : Réanalyse le fichier final pour configurer les en-têtes et drapeaux (flags) Audio/Sous-titres par défaut selon la catégorie, tout en injectant les verrous de métadonnées unitaires.
Le script inclut des fonctions d'auto-mise à jour capables d'interroger les API distantes pour maintenir vos outils à la dernière version stable :
- HandBrake : Interroge l'API GitHub (
HandBrake/HandBrake), télécharge le binaire CLI x64 et l'extrait proprement. - FFmpeg : Récupère la version stable Essentials du dépôt officiel de Gyan.dev et remplace à chaud
ffmpeg.exeetffprobe.exe. - MKVToolNix : Interroge l'API Codeberg (
mbunkus/mkvtoolnix) pour isoler le dernier numéro de tag stable, télécharge l'archive portable.7zet restructure proprement l'arborescence.
Permet de lancer un scan de diagnostic profond à l'aide de ffprobe. Il vérifie le codec vidéo et le format de pixel de plus de 15 extensions différentes (.mp4, .mkv, .avi, .ts...). Tout fichier n'étant pas strictement identifié comme hevc en 10-bit est consigné dans un rapport texte généré à la volée et ouvert automatiquement dans le Bloc-notes.
Le traitement s'adapte précisément selon la lettre du lecteur réseau sélectionné :
- Mangas & Animations (Lecteurs T et W) : Le script identifie et force la piste Audio Japonaise (
jpn/ja) par défaut. Il recherche la piste de sous-titres Français Complets (en excluant les pistes Forced) pour l'activer par défaut. - Films, Séries, Cartoons, Spectacles (Lecteurs S, U, V, X, Y) : Force la piste Audio Française (
fra/fr) par défaut et configure la première piste de sous-titres Français Forced (textes traduits à l'écran) en mode Default & Forced. - Note : Tous les drapeaux par défaut ou conflictuels des autres pistes (pistes anglaises, commentaires...) sont automatiquement purgés à 0 pour éviter les mauvaises sélections des lecteurs clients.
- Préservation de la 4K : Si
ffprobedétecte une source Ultra HD (largeur > 1920px), le script retire la limite de redimensionnement de HandBrake mais applique le profil qualitatif constant (CQ 28) en HEVC 10-bit matériel (nvenc_h265_10bit). - Protection Sécurisée : L'encodage s'effectue dans un répertoire temporaire (
Z:\Encoder_Emby). Lors de la substitution finale, le script applique les permissions de fichiers originales (Droits ACL Windows) de l'ancien fichier sur le nouveau avant de purger l'élément.old.
Pour les arborescences de séries, le script inspecte la présence de dossiers thématiques :
- Bande-annonce (Trailer) : Extrait automatiquement 3 séquences distinctes de 25 secondes à des moments clés (5e, 10e et 15e minute) d'un premier épisode et les fusionne de manière complexe (
filter_complex concat) en un fichiertheme.mkvfluide avec piste audio. - Arrière-plan (Backdrop) : Isole une séquence continue de 30 secondes à partir de la 10e minute (évitant ainsi les logos d'introduction de production) pour les menus animés de l'interface Emby.
Afin d'empêcher les moteurs de scrap d'Emby ou Jellyfin d'écraser vos titres personnalisés, le script utilise le moteur XML natif de Windows :
- Il analyse ou génère les fichiers
.nfo(movie,episodedetails,tvshow). - Il synchronise les balises
<title>et<sorttitle>avec le nom réel du dossier de votre média. - Il injecte et fige la balise
<lockedfields>Title|SortTitle</lockedfields>, garantissant l'immunité de vos métadonnées lors des futurs scans système.
Pour que le script s'exécute sans erreur, veillez à respecter la structure de dossiers Windows suivante :
- Outils applicatifs :
C:\Tools\HandBrake\HandBrakeCLI.exeC:\Tools\ffmpeg\bin\(ffmpeg.exe,ffprobe.exe)C:\Tools\MKVToolNix\(mkvpropedit.exe)
- Stockage de travail et Logs :
Z:\Encoder_Emby\(Sert de zone tampon d'encodage et centralise l'arborescence des journaux/Encodage,/Audio,/Erreurs).
- Montages Réseau (Lettres dédiées) :
S:àY:mappés vers vos catégories respectives (Films, Séries, Animes, etc.).
- Ouvrez une invite de commande PowerShell en mode Administrateur.
- Positionnez-vous dans le dossier du script et exécutez-le :
.\Emby_Encodage.ps1