Я использую FFmpeg с PowerShell.
Я пытаюсь установить приоритет процесса при использовании FFmpeg 2 Pass Encoding.
Скрипт работает с 1 проходом и кодировкой CRF.
Скрипт
По завершении прохода 1 он снова запускает FFmpeg для прохода 2.
Примечание: Pass 1 выводит на NUL, Pass 2 выводит видеофайл.
(Start-Process ffmpeg -NoNewWindow -Wait -ArgumentList '-i "C:\Path\video.mpg" -c:v libx264 -b:v 2000K -pass 1 NUL' -PassThru).PriorityClass = [System.Diagnostics.ProcessPriorityClass]::AboveNormal;
(Start-Process ffmpeg -NoNewWindow -Wait -ArgumentList '-i "C:\Path\video.mpg" -c:v libx264 -b:v 2000K -pass 2 "C:\Path\video.mp4"' -PassThru).PriorityClass = [System.Diagnostics.ProcessPriorityClass]::AboveNormal
Проблема
Использование -Wait
вызывает эту ошибку PowerShell. :
Exception setting "PriorityClass": "Cannot process request because the process (14324) has exited."
Но без -Wait
второй проход никогда не запускается, и я получаю эту ошибку FFmpeg:
Failed to initialize encoder: Invalid parameter
Additional information: rc_twopass_stats_in.buf not set.