¿No debería hacer que el proceso falle al establecer CustomCommandCritical=true? Lo tengo configurado en el perfil y tengo marcada la opción “strict” (estricto), pero simplemente ignora el valor de retorno 1 del script y continúa procesando el archivo.
Este es el último perfil que estoy usando y tengo MCEBuddy 2.5 Beta 6.
[Move Movie Only]
Description=Solo Copiar
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.
Aquí hay información relevante del archivo de registro:
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base –\u003e Resumen de limpieza: 0 eliminados, 0 fallidos
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base –\u003e Limpiando archivos de subtítulos extraídos…
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base –\u003e Marcador de instancia actual eliminado: W:\Temp\VideoProcessing_Instances\convertHdr10+ToAV1.52988.marker
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base –\u003e Controladores de limpieza no registrados
–\u003e El proceso salió con el código 1
2025-08-23T11:07:30 MCEBuddy.Engine.ConversionJob –\u003e Comando personalizado finalizado, tamaño del archivo [KB] 62,040,758.00
INFORMACIÓN\u003e 2025-08-23T11:07:30 MCEBuddy.Engine.ConversionJob –\u003e Moviendo el archivo convertido al destino
¿Puede adjuntar el registro de conversión completo? Algunos de los mensajes en el registro anterior no los reconozco como provenientes de MCEBuddy, ¿puede confirmar que provienen de su script?
Si puede compartir su script, sería genial para poder replicar su configuración y ver qué está pasando.
Mi script actual es una especie de monstruosidad.
Es mi proyecto paralelo para intentar hacer todo para solucionar los problemas de Plex. Ha crecido hasta unas 5k líneas de código, pero finalmente soluciona los problemas de pantalla negra, los problemas de Dolby Vision, los problemas de retraso de inicio de 10 segundos y el re-buffering. ![]()
Encontré una solución alternativa para mover manualmente el archivo a mi carpeta de fallidos. Plex detecta que el archivo ha desaparecido y luego lo marca como fallido.
Eliminé los registros de mis ejecuciones fallidas. En la próxima ejecución que falle, adjuntaré el registro de nuevo. Veo que toda la salida de mi script se muestra en los registros con “mcebuddy.appwrapper.base”
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Optimizaciones de Plex Habilitadas:
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Fragmentado MP4 con faststart
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Intervalos de fotogramas clave de 2 segundos para una búsqueda fluida
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Niveles HEVC conservadores para compatibilidad con dispositivos
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Conversión de subtítulos SRT para mejor compatibilidad
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Preservación de metadatos HDR para contenido 4K HDR
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Pistas de audio: Mejor pista seleccionada
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Pistas de subtítulos: 0 para convertir, 0 para copiar, 3 ignoradas
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Búsqueda de archivos de subtítulos externos…
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → No se encontraron archivos de subtítulos externos en inglés
Aquí está la parte relevante de mi script:
} catch {
Write-Error "Procesamiento fallido: $\\_"
Write-Error "Seguimiento de pila: $($\\_.ScriptStackTrace)"
\# --- INICIO DE NUEVA LÓGICA ---
\# Mover el archivo de entrada fallido a la carpeta especificada
try {
if (-not (Test-Path $FailedFolder)) {
New-Item -Path $FailedFolder -ItemType Directory -Force | Out-Null
Write-Host "Carpeta de fallidos creada en '$FailedFolder'" -ForegroundColor Yellow
}
$destinationPath = Join-Path $FailedFolder (Split-Path $InputFile -Leaf)
Move-Item -Path $InputFile -Destination $destinationPath -Force
Write-Host "Archivo fallido '$InputFile' movido a '$destinationPath'" -ForegroundColor Red
} catch {
Write-Error "No se pudo mover el archivo a la carpeta de fallidos: $\\_"
}
\# --- FIN DE NUEVA LÓGICA ---
\# Asegurar la limpieza en caso de error
if ($spaceMonitorJob) { Stop-SpaceMonitoringWithCleanup -MonitorJob $spaceMonitorJob }
Stop-ActiveProcesses
Clear-TempFiles
Clear-ExtractedSubtitles
exit 1
} finally {
\# Limpieza final - CORREGIDO para usar la función de limpieza mejorada
if ($spaceMonitorJob) { Stop-SpaceMonitoringWithCleanup -MonitorJob $spaceMonitorJob }
Stop-ActiveProcesses
Clear-TempFiles
Clear-ExtractedSubtitles
Remove-CurrentInstanceMarker
\# Borrar cualquier indicador de progreso restante
$progressActivities = @("Procesamiento de video", "Codificación de video", "Extraer metadatos HDR10+",
"Inyectar metadatos HDR10+", "Contenerización MP4", "Remux MKV final", "Validación de calidad")
foreach ($activity in $progressActivities) {
Write-Progress -Activity $activity -Completed
}
\# Desregistrar manejadores de eventos
if ($Script:CleanupRegistered) {
try {
Get-EventSubscriber | Where-Object { $\\_.SourceIdentifier -match "PowerShell.Exiting|ProcessExit" } | Unregister-Event -ErrorAction SilentlyContinue
Write-Host "Manejadores de limpieza desregistrados" -ForegroundColor Gray
}
catch {
\# Ignorar errores de limpieza durante el apagado
}
}
}
Write-Host “¡Procesamiento completado con éxito!” -ForegroundColor Green
exit 0
Aquí hay un registro de una ejecución que falló miserablemente
debido a un problema de codificación en mi script. Pero muestra que el script falló, pero mcebuddy siguió funcionando.
Veo el problema, tu perfil no ha instruido al comando personalizado para verificar el código de salida:
2025-08-24T10:54:25 MCEBuddy.Transcode.CustomCommand → A punto de ejecutar el comando personalizado con los parámetros:
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
Debes establecerCustomCommandExitCodeCheckentrueen el perfil si quieres que MCEBuddy compruebe los códigos de salida.CustomCommandCriticalsolo comprueba las terminaciones y los problemas con el proceso en sí y no comprueba los códigos de retorno o de salida.
De la documentación de customcommand: MCEBuddy - Advanced Settings, Commands and Tweaking
CustomCommandCritical, cuando se establece en true, MCEBuddy fallará toda la conversión si el comando personalizado no es válido o si el proceso se termina (debido a la detección de bloqueo). Si se establece en false, MCEBuddy continuará con el procesamiento de la conversión independientemente del fallo/éxito del comando personalizado A MENOS QUE el archivo convertido haya sido renombrado o eliminado. Por defecto, el valor es false.
CustomCommandExitCodeCheck(v2.4.1+) se establece en true si deseas que MCEBuddy compruebe el Código de Salida de la aplicación del comando personalizado. Si el código de retorno es 0 (por defecto) se considera un éxito, si no es 0 (+ve o -ve) entonces se considera un fallo. Si el Código de Salida falla, MCEBuddy detendrá el procesamiento posterior y fallará la conversión.
¡Gracias! Debí haber estado dormido o mirando información antigua, pero me lo perdí por completo.