Le fait de définir CustomCommandCritical=true ne devrait-il pas entraîner l’échec du processus ? J’ai cette option définie dans le profil et j’ai coché « strict », mais il ignore simplement la valeur de retour de 1 du script et continue de traiter le fichier.
Voici le dernier profil que j’utilise et j’ai MCEBuddy 2.5 Beta 6.
[Move Movie Only]
Description=Juste Copier
order=copy
copy-ext=.ts
copy-remuxto=.mkv
copy-audiodelay=skip
ffmpeg-VideoOptimized=true
ffmpeg-AudioOptimized=true
copy-VideoOptimized=true
copy-AudioOptimized=true
CustomCommandPath=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
CustomCommandParameters= -File “e:\plex\convertHdr10+ToAV1.ps1” -InputFile “%sourcefile%”
CustomCommandHangPeriod=0
CustomCommandCritical=true
CustomCommandUISession=true
Thanks for providing that information, Dan.
It’s interesting that even with CustomCommandCritical=true and MCEBuddy 2.5 Beta 6, it’s still not failing. The Move Movie Only profile seems straightforward.
Could you also provide the contents of your convertHdr10+ToAV1.ps1 script, specifically how it’s returning the error code? I want to ensure the PowerShell script is indeed returning a non-zero exit code in a way that MCEBuddy can interpret.
For example, in PowerShell, you might use exit 1 to return an error. If the script is ending without an explicit exit command, it might be implicitly returning 0.
Voici quelques informations pertinentes du fichier journal :
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base → Résumé du nettoyage : 0 supprimé, 0 échoué
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base → Nettoyage des fichiers de sous-titres extraits…
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base → Marqueur d’instance actuel supprimé : W:\Temp\VideoProcessing_Instances\convertHdr10+ToAV1.52988.marker
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base → Gestionnaires de nettoyage non enregistrés
→ Le processus s’est terminé avec le code 1
2025-08-23T11:07:30 MCEBuddy.Engine.ConversionJob → Commande personnalisée terminée, taille du fichier [Ko] 62 040 758,00
INFORMATION> 2025-08-23T11:07:30 MCEBuddy.Engine.ConversionJob → Déplacement du fichier converti vers la destination
Pouvez-vous joindre le journal de conversion complet. Certains des messages dans le journal ci-dessus, je ne reconnais pas qu’ils proviennent de MCEBuddy - pouvez-vous confirmer qu’ils proviennent de votre script ?
Si vous pouvez partager votre script, ce serait super pour que nous puissions reproduire votre configuration et voir ce qui se passe.
Mon script actuel est une sorte de monstre.
C’est mon projet parallèle pour essayer de tout faire pour résoudre les problèmes de Plex. Il est passé à environ 5 000 lignes de code, mais il résout enfin les problèmes d’écran noir, les problèmes de Dolby Vision, les problèmes de délai de démarrage de 10 secondes et le ré-buffering. ![]()
J’ai trouvé une solution de contournement pour déplacer manuellement le fichier vers mon dossier d’échec. Plex détecte que le fichier a disparu et le signale ensuite comme un échec.
J’ai supprimé les journaux de mes exécutions précédentes qui avaient échoué. Lors de la prochaine exécution qui échouera, je joindrai à nouveau le journal. Je vois que toutes les sorties de mon script apparaissent dans les journaux avec « mcebuddy.appwrapper.base »
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Optimisations Plex activées :
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → MP4 fragmenté avec faststart
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Intervalles d’image clé de 2 secondes pour une recherche fluide
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Niveaux HEVC conservateurs pour la compatibilité des appareils
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Conversion des sous-titres SRT pour une meilleure compatibilité
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Préservation des métadonnées HDR pour le contenu 4K HDR
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Flux audio : Meilleur flux sélectionné
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Flux de sous-titres : 0 à convertir, 0 à copier, 3 ignorés
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Recherche de fichiers de sous-titres externes…
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Aucun fichier de sous-titres anglais externe trouvé
Voici la partie pertinente de mon script :
} catch {
Write-Error "Le traitement a échoué : $\\_"
Write-Error "Trace de la pile : $($\\_.ScriptStackTrace)"
\# --- DÉBUT DE LA NOUVELLE LOGIQUE ---
\# Déplacer le fichier d'entrée défaillant vers le dossier spécifié
try {
if (-not (Test-Path $FailedFolder)) {
New-Item -Path $FailedFolder -ItemType Directory -Force | Out-Null
Write-Host "Dossier d'échec créé à l'adresse '$FailedFolder'" -ForegroundColor Yellow
}
$destinationPath = Join-Path $FailedFolder (Split-Path $InputFile -Leaf)
Move-Item -Path $InputFile -Destination $destinationPath -Force
Write-Host "Fichier défaillant '$InputFile' déplacé vers '$destinationPath'" -ForegroundColor Red
} catch {
Write-Error "Échec du déplacement du fichier vers le dossier d'échec : $\\_"
}
\# --- FIN DE LA NOUVELLE LOGIQUE ---
\# Assurer le nettoyage en cas d'erreur
if ($spaceMonitorJob) { Stop-SpaceMonitoringWithCleanup -MonitorJob $spaceMonitorJob }
Stop-ActiveProcesses
Clear-TempFiles
Clear-ExtractedSubtitles
exit 1
} finally {
\# Nettoyage final - CORRIGÉ pour utiliser la fonction de nettoyage améliorée
if ($spaceMonitorJob) { Stop-SpaceMonitoringWithCleanup -MonitorJob $spaceMonitorJob }
Stop-ActiveProcesses
Clear-TempFiles
Clear-ExtractedSubtitles
Remove-CurrentInstanceMarker
\# Effacer tous les indicateurs de progression restants
$progressActivities = @("Traitement vidéo", "Encodage vidéo", "Extraction des métadonnées HDR10+",
"Injection des métadonnées HDR10+", "Conteneurisation MP4", "Remux MKV final", "Validation de la qualité")
foreach ($activity in $progressActivities) {
Write-Progress -Activity $activity -Completed
}
\# Désinscrire les gestionnaires d'événements
if ($Script:CleanupRegistered) {
try {
Get-EventSubscriber | Where-Object { $\\_.SourceIdentifier -match "PowerShell.Exiting|ProcessExit" } | Unregister-Event -ErrorAction SilentlyContinue
Write-Host "Gestionnaires de nettoyage désinscrits" -ForegroundColor Gray
}
catch {
\# Ignorer les erreurs de nettoyage lors de l'arrêt
}
}
}
Write-Host “Traitement terminé avec succès !” -ForegroundColor Green
exit 0
Voici un journal d’une exécution qui a lamentablement échoué
à cause d’un problème de codage dans mon script. Mais il montre que le script a échoué, mais que mcebuddy a continué.
Je vois le problème, votre profil n’a pas configuré la commande personnalisée pour vérifier le code de sortie :
2025-08-24T10:54:25 MCEBuddy.Transcode.CustomCommand → Sur le point d’exécuter la commande personnalisée avec les paramètres suivants :
PreCustomCommandPath = c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe
PreCustomCommandParameters = -File “e:\\plex\\convertHdr10+ToAV1.ps1” -InputFile “E:\\Radarr\\Guardians of the Galaxy (2014)\\Guardians of the Galaxy (2014).mkv”
PreCustomCommandHangPeriod = 0
PreCustomCommandCritical = True
PreCustomCommandUISession = True
PreCustomCommandShowWindow = True
PreCustomCommandExitCodeCheck = False
Vous devez définir CustomCommandExitCodeCheck sur true dans le profil si vous souhaitez que MCEBuddy vérifie les codes de sortie. CustomCommandCritical vérifie uniquement les terminaisons et les problèmes avec le processus lui-même et ne vérifie pas les codes de retour ou de sortie.
D’après la documentation des commandes personnalisées : MCEBuddy - Advanced Settings, Commands and Tweaking
CustomCommandCritical, lorsqu’il est défini sur true, MCEBuddy échouera toute la conversion si la commande personnalisée est invalide ou si le processus est terminé (en raison de la détection de blocage). S’il est défini sur false, MCEBuddy continuera le traitement de la conversion, quel que soit l’échec/succès de la commande personnalisée, SAUF si le fichier converti a été renommé ou supprimé. Par défaut, la valeur est false.
CustomCommandExitCodeCheck(v2.4.1+) est défini sur true si vous souhaitez que MCEBuddy vérifie le code de sortie de l’application de la commande personnalisée. Si le code de retour est 0 (par défaut), il est considéré comme un succès, sinon (si non 0, positif ou négatif), il est considéré comme un échec. Si le code de sortie échoue, MCEBuddy arrêtera le traitement ultérieur et annulera la conversion.
Merci ! J’étais soit endormi, soit en train de consulter des informations plus anciennes, mais j’ai complètement raté ça.