Estoy tratando de encontrar una manera de establecer la prioridad del proceso ffmpeg. El servidor convierte los videos entrantes a diferentes resoluciones, los videos nuevos deben tener mayor prioridad y convertirse más rápido que los procesos existentes.
Debería funcionar de manera similar a los algoritmos SJF (trabajo más corto primero) o LIFO (último en entrar, primero en salir).
¿Hay alguna manera de hacerlo con ffmpeg?
Yo engendro procesos así
ffmpeg -i "${video_path}" -strict experimental -movflags faststart -vf "${resolution}" "${output_path}" >> "${ffmpeg_log}" 2>&1
Nota:
Ya he probado nice
solución basada Parece que no funciona. Generé un proceso de 2 ffmpeg con prioridad 10 y -10, y el que se generó anteriormente se completó anteriormente
Respuestas:
Simplemente llamas
nice
Antes de llamar al proceso, junto con el valor de la amabilidad.Las páginas del manual para
nice
le mostrará cómo averiguar exactamente qué tan "bonito" es un proceso, es decir, valores más bajos == menos agradables, mayor prioridad.nice --5 "ffmpeg -i...."
lanzaría ffmpeg con un buen valor de -5, por lo que es una prioridad más alta que algo con un buen valor de -1.Normalmente, 0 es el valor predeterminado, un valor más alto que esto significa que tendría menos prioridad que la predeterminada.
fuente
renice
- Para afectar un proceso que ya se está ejecutando.