Spørgsmål om CustomCommandCritical

Skulle indstillingen CustomCommandCritical=true ikke få processen til at fejle? Jeg har den sat i profilen og har “strict” markeret, men den ignorerer bare scriptets returværdi på 1 og fortsætter med at behandle filen.

Dette er den seneste profil, jeg bruger, og jeg har MCEBuddy 2.5 Beta 6.

[Move Movie Only]

Description=Just Copy

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.

Her er nogle relevante oplysninger fra logfilen:

2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base → Oprydningsresumé: 0 fjernet, 0 mislykkedes
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base → Rydder op i udpakkede undertekstfiler…
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base → Fjernede den aktuelle instansmarkør: W:\Temp\VideoProcessing_Instances\convertHdr10+ToAV1.52988.marker
2025-08-23T11:07:27 MCEBuddy.AppWrapper.Base → Oprydningshåndteringer afregistreret
→ Proces afsluttet med kode 1
2025-08-23T11:07:30 MCEBuddy.Engine.ConversionJob → Færdig med brugerdefineret kommando, filstørrelse [KB] 62.040.758,00
INFORMATION> 2025-08-23T11:07:30 MCEBuddy.Engine.ConversionJob → Flytter konverteret fil til destination

Kan du vedhæfte hele konverteringsloggen. Nogle af meddelelserne i loggen ovenfor genkender jeg ikke som værende fra MCEBuddy - kan du bekræfte, at de kommer fra dit script?

Hvis du kan dele dit script, ville det være fantastisk, så vi kan genskabe din opsætning og se, hvad der foregår.

Mit nuværende script er lidt af et monster. :slight_smile: Det er mit sideprojekt for at forsøge at løse alle plex-problemer. Det er vokset til omkring 5k kodelinjer, men det løser endelig problemerne med sort skærm, Dolby Vision-problemer, 10-sekunders startforsinkelse og genbuffering. :slight_smile:

Jeg fandt en midlertidig løsning til manuelt at flytte filen til min fejlmappe. Plex registrerer, at filen er væk, og markerer den derefter som en fejl.

Jeg har slettet logfilerne fra mine mislykkede kørsler. Ved den næste kørsel, der fejler, vedhæfter jeg logfilen igen. Jeg kan se, at al output fra mit script vises i logfilerne med “mcebuddy.appwrapper.base”

2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Plex Optimizations Enabled:
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Fragmented MP4 with faststart
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → 2-second keyframe intervals for smooth seeking
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Conservative HEVC levels for device compatibility
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → SRT subtitle conversion for better compatibility
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → HDR metadata preservation for 4K HDR content
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Audio streams: Selected best stream
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Subtitle streams: 0 to convert, 0 to copy, 3 ignored
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → Scanning for external subtitle files…
2025-08-24T07:14:53 MCEBuddy.AppWrapper.Base → No external English subtitle files found

Her er den relevante del fra mit script:

} catch {

Write-Error "Processing failed: $\\_"

Write-Error "Stack trace: $($\\_.ScriptStackTrace)"



 \# --- START OF NEW LOGIC ---

\# Move the failed input file to the specified folder

try {

    if (-not (Test-Path $FailedFolder)) {

        New-Item -Path $FailedFolder -ItemType Directory -Force | Out-Null

        Write-Host "Created failed folder at '$FailedFolder'" -ForegroundColor Yellow

    }

    $destinationPath = Join-Path $FailedFolder (Split-Path $InputFile -Leaf)

    Move-Item -Path $InputFile -Destination $destinationPath -Force

    Write-Host "Moved failed file '$InputFile' to '$destinationPath'" -ForegroundColor Red

} catch {

    Write-Error "Failed to move the file to the failed folder: $\\_"

}

\# --- END OF NEW LOGIC ---



\# Ensure cleanup on error

if ($spaceMonitorJob) { Stop-SpaceMonitoringWithCleanup -MonitorJob $spaceMonitorJob }

Stop-ActiveProcesses

Clear-TempFiles

Clear-ExtractedSubtitles



exit 1

} finally {

\# Final cleanup - FIXED to use improved cleanup function

if ($spaceMonitorJob) { Stop-SpaceMonitoringWithCleanup -MonitorJob $spaceMonitorJob }

Stop-ActiveProcesses

Clear-TempFiles

Clear-ExtractedSubtitles

Remove-CurrentInstanceMarker 



\# Clear any remaining progress indicators

$progressActivities = @("Video Processing", "Video encoding", "Extract HDR10+ metadata", 

                      "Inject HDR10+ metadata", "MP4 containerization", "Final MKV remux", "Quality Validation")

foreach ($activity in $progressActivities) {

    Write-Progress -Activity $activity -Completed

}



\# Unregister event handlers

if ($Script:CleanupRegistered) {

    try {

        Get-EventSubscriber | Where-Object { $\\_.SourceIdentifier -match "PowerShell.Exiting|ProcessExit" } | Unregister-Event -ErrorAction SilentlyContinue

        Write-Host "Cleanup handlers unregistered" -ForegroundColor Gray

    }

    catch {

        \# Ignore cleanup errors during shutdown

    }

}

}

Write-Host “Processing completed successfully!” -ForegroundColor Green

exit 0

Her er en log fra et kørsel, der mislykkedes elendigt

på grund af et kodningsproblem i mit script. Men det viser, at scriptet mislykkedes, men mcebuddy fortsatte.

Jeg kan se problemet, din profil har ikke instrueret den brugerdefinerede kommando i at kontrollere exit-koden:

2025-08-24T10:54:25 MCEBuddy.Transcode.CustomCommand → Er ved at køre brugerdefineret kommando med parametre:
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
Du skal indstille CustomCommandExitCodeCheck til true i profilen, hvis du vil have MCEBuddy til at se på exit-koderne. CustomCommandCritical ser kun på afbrydelser og problemer med selve processen og ser ikke på retur- eller exit-koderne.

Fra dokumentationen for brugerdefinerede kommandoer: MCEBuddy - Advanced Settings, Commands and Tweaking

CustomCommandCritical, når denne er indstillet til true, vil MCEBuddy fejle hele konverteringen, hvis den brugerdefinerede kommando er ugyldig, eller hvis processen afbrydes (på grund af hænge-detektion). Hvis den er indstillet til false, vil MCEBuddy fortsætte med konverteringsbehandlingen uanset fejl/succes i den brugerdefinerede kommando, MEDMINDRE den konverterede fil er blevet omdøbt eller slettet. Som standard er værdien false.

CustomCommandExitCodeCheck(v2.4.1+) er indstillet til true, hvis du ønsker, at MCEBuddy skal kontrollere Exit Code for den brugerdefinerede kommandoapplikation. Hvis returkoden er 0 (standard), betragtes det som en succes, hvis den ikke er 0 (+ve eller -ve), betragtes det som en fejl. Hvis Exit Code fejler, stopper MCEBuddy yderligere behandling og fejler konverteringen.

Tak! Jeg må enten have sovet eller kigget på ældre informationer, men jeg missede det fuldstændig.