2010-12-30 6 views
13

C# Windows Forms 응용 프로그램에서 FFMpeg를 호출합니다. 너무 많은 CPU (항상 90 % 이상)를 사용하므로 내 스레드 중 아무 것도 작업을 계속할 수 없습니다. 이 CPU 사용을 제한 할 수있는 방법이 있습니까?FFMpeg CPU 사용을 어떻게 제한합니까?

Process.PriorityClass를 PriorityClass.BelowNormal로 설정하려고 시도했지만 ffmpeg 프로세스가 완전히 차단되었습니다.

ffmpeg를 활용하는 프로그램이 많기 때문에이 방법이 유용 할 것입니다.

도와주세요.

답변

20

FFMpeg를 CPU 사용률로 제한 할 수는 없지만 FFMpeg 호출에서 -threads 매개 변수를 설정할 수 있습니다. 코어가 4 개인 경우 -threads 2으로 설정하면 약 50 %의 CPU로 제한됩니다.

또 다른 해결책은 FFMpeg 프로세스의 우선 순위를 응용 프로그램보다 낮추는 것입니다.

+0

내 CPU에 단일 코어가있는 경우 우선 순위를 낮추라고 제안합니다. 이것을 실제로하는 것이 가장 좋은 방법입니까? –

+1

@Mert, 하이퍼 스레딩이없는 단일 코어 CPU의 경우 우선 순위를 낮추는 것이 최선의 방법입니다. 미디어 인코딩은 CPU 집약적 인 작업이므로 어떤 종류의 확장 성을 원한다면 응용 프로그램과 동일한 컴퓨터에서 FFMpeg를 실행하지 않는 것이 좋습니다.이 경우 클라이언트/서버 솔루션은 조사하고 싶은 내용 일 것입니다 . 나는 그것이 당신의 질문에 대답했기를 바랍니다. –

관련 문제