Estoy tratando de encontrar una manera de establecer la prioridad del proceso ffmpeg. El servidor convierte 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 (el trabajo más corto primero) o LIFO (el último en entrar, el primero en salir).
¿Hay alguna manera de hacerlo con ffmpeg?
Engendro procesos como este
ffmpeg -i "${video_path}" -strict experimental -movflags faststart -vf "${resolution}" "${output_path}" >> "${ffmpeg_log}" 2>&1
Nota:
Ya probé nice
la solución basada. Parece que no funciona. Generé 2 procesos ffmpeg con prioridad 10 y -10, y el que se generó antes se completó antes
Respuesta1
simplemente llamasnice
antes de llamar al proceso, junto con el valor de amabilidad.
Las páginas de manual nice
le mostrarán cómo determinar exactamente qué tan "agradable" es un proceso, es decir, valores más bajos == menos agradable, mayor prioridad.
nice --5 "ffmpeg -i...."
iniciaría ffmpeg con un buen valor de -5, lo que lo haría más prioritario que algo con un buen valor de -1.
Normalmente, 0 es el valor predeterminado; un valor más alto que este significa que tendría una prioridad menor que la predeterminada.