Estou tentando encontrar uma maneira de definir a prioridade do processo ffmpeg. O servidor converte os vídeos recebidos para diferentes resoluções; novos vídeos devem ter maior prioridade e serem convertidos mais rapidamente do que os processos existentes.
Deve funcionar de forma semelhante aos algoritmos SJF (Shortest Job First) ou LIFO (Last In First Out).
Existe alguma maneira de fazer isso com o ffmpeg?
Eu gero processos assim
ffmpeg -i "${video_path}" -strict experimental -movflags faststart -vf "${resolution}" "${output_path}" >> "${ffmpeg_log}" 2>&1
Observação:
Já testei nice
a solução baseada. Parece que não funciona. Eu gerei 2 processos ffmpeg com prioridade 10 e -10, e o que foi gerado anteriormente foi concluído mais cedo
Responder1
Você simplesmente liganice
antes de chamar o processo, junto com o valor de gentileza.
As páginas de manual nice
mostrarão como descobrir exatamente o quão 'legal' é um processo, ou seja, valores mais baixos == menos agradável, prioridade mais alta.
nice --5 "ffmpeg -i...."
lançaria o ffmpeg com um bom valor de -5, tornando-o de maior prioridade do que algo com um bom valor de -1.
0 normalmente é o padrão, um valor maior que isso significa que você teria menos prioridade do que o padrão.