2010-12-30 54 views
13

Llamo a FFMpeg dentro de una aplicación C# Windows Forms. Como usa tanta CPU (siempre por encima del 90%), ninguno de mis hilos puede seguir funcionando. ¿Hay alguna manera de limitar el uso de esta CPU?¿Cómo puedo limitar el uso de CPU FFMpeg?

He intentado establecer Process.PriorityClass en PriorityClass.BelowNormal, pero esto ha bloqueado por completo el proceso de ffmpeg.

Estoy seguro de que hay una manera de hacerlo, ya que veo muchos programas que utilizan ffmpeg.

Por favor ayuda.

Respuesta

20

No se puede limitar FFMpeg a un porcentaje de utilización de la CPU, pero se puede establecer el parámetro -threads en su llamada FFMpeg, si tiene 4 núcleos se tratan de establecer a -threads 2 que se debe limitar a alrededor del 50% de la CPU.

Otra solución podría ser bajar la prioridad en su proceso FFMpeg, a algo más bajo que sus aplicaciones.

+0

Así que está sugiriendo que debería disminuir la prioridad de la misma, si mi CPU tiene un solo núcleo. ¿Es esta la mejor manera de hacer esto? –

+1

@Mert, sí, para una CPU de un solo núcleo sin hipereligado, disminuir la prioridad sería el camino a seguir. La codificación de medios es una tarea intensiva de la CPU, y si está buscando cualquier tipo de escalabilidad, debería considerar no ejecutar FFMpeg en la misma máquina que su aplicación, en ese caso una solución cliente/servidor sería algo en lo que debería considerar . Espero que haya respondido tu pregunta –

Cuestiones relacionadas