Запуск процесса с приоритетом - PullRequest
0 голосов
/ 27 мая 2020

Я запускаю FFmpeg в Командная строка с низким приоритетом.

start /low /b ffmpeg -i "C:\video.mpg" -c:v libx264 -crf 25 "C:\video.mp4"

Как установить приоритет FFmpeg в PowerShell для low, below normal, normal, above normal, high?

Используя приведенную выше команду CMD в PowerShell, я получаю сообщения об ошибках:

Parameter cannot be processed because the parameter name 'i' is ambiguous.
Start-Process : A positional parameter cannot be found that accepts argument 'ffmpeg'.

Решения для тестирования

Я пытаюсь использовать первый пример в ответе ArcSet.

Start-Process ffmpeg -NoNewWindow -Wait -ArgumentList '-i "C:\video.mpg" -c:v libx264 -crf 25 "C:\video.mp4"' -PassThru Set-ProcessPriority -ProcessId $Process.id -Priority AboveNormal

Я получаю сообщение об ошибке:

A positional parameter cannot be found that accepts argument 'Set-ProcessPriority'

1 Ответ

1 голос
/ 28 мая 2020

Использование ether Set-ProcessPriority

$Process = Start-Process "C:\ffmpeg\bin\ffmpeg.exe" -ArgumentList "-i `"C:\ffmpeg\Test\Test.mpg`" -c:v libx264 -crf 25 `"C:\ffmpeg\Test\Test.mp4`"" -PassThru
Set-ProcessPriority -ProcessId $Process.id -Priority BelowNormal

Или установка его в свойствах процесса

($Process = Start-Process "C:\ffmpeg\bin\ffmpeg.exe" -ArgumentList "-i `"C:\ffmpeg\Test\Test.mpg`" -c:v libx264 -crf 25 `"C:\ffmpeg\Test\Test.mp4`"" -NoNewWindow -PassThru).PriorityClass = [System.Diagnostics.ProcessPriorityClass]::BelowNormal

Если вам нужно проверить его установленный приоритет на запрошенный вами приоритет, вы можете позвонить переменная, в которой вы сохранили процесс, и проверьте

$Process.PriorityClass

В качестве примечания вы увидите, что используется char `. Это escape-символ, который используется, чтобы вы могли использовать кавычки внутри кавычек

"Hey `"There`" People"

, которые вернут

Hey "There" People
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...