Теперь, когда я понял, попробуйте это:
Get-ChildItem .\video_old -Filter *.mkv | ForEach-Object {
$exportPath=".\video_new\$($_.Name)"
#Export
.\ffmpeg.exe -i $_.FullName -c:v libx265 -crf 18 $exportPath
Write-Host "Exported file on $exportPath."
#Know where to cut
$results = .\ffmpeg.exe -ss 90 -i $exportPath -vframes 10 -vf cropdetect -f null - 2>&1
#Cut
if(($results | ? {$_ -match 'crop=\d{1,4}:\d[0-9]{1,4}:\d:\d'})){
Write-Host "The regular expression was matched, value $($Matches[0])."
.\ffmpeg.exe -i $exportPath -vf ($Matches[0]) -c:a copy ($exportPath.Replace($_.BaseName,"$($_.BaseName)_CUT"))
}else{
Write-Host "The regular expression was NOT matched. The line was '$($resultsParsed[0])'"
$results | Out-File .\resultsFromCropDetect.txt
}
}
У меня нет способа проверить это, но в основном я запускаю первую команду, которая говорит мне, где вырезать, с помощью регулярного выражения Я вытаскиваю только эту часть, а затем выполняю фактический раскрой, экспортируя в новый файл с именем «OriginalName_CUT.mkv».
Дайте мне знать, как с удовольствием делать изменения.
РЕДАКТИРОВАТЬ
После долгих попыток я запросил вывод ffmpeg cropdetect и отладил локально, упростив процесс поиска совпадения к cropdetect.