2012-07-06 2 views
2

C# Windows Forms 응용 프로그램에서 FFMpeg를 호출합니다. 너무 많은 CPU (거의 100 %)를 사용하기 때문에 아무 스레드도 작업을 계속할 수 없습니다. 이 CPU 사용을 제한 할 수있는 방법이 있습니까?FFMpeg CPU 사용을 제한하는 방법은 무엇입니까?

다음은

Process ffmpeg = new Process(); 
ffmpeg.StartInfo.UseShellExecute = false; 
ffmpeg.StartInfo.FileName = '..\ffmpeg.exe' 
ffmpeg.StartInfo.CreateNoWindow = true; 
ffmpeg.Start(); 

나는 PriorityClass.BelowNormal에 Process.PriorityClass를 설정하려고했지만이 완전히는 FFmpeg 프로세스를 차단, 내 작업 코드입니다.

다른 방법이 있습니까?

+0

중복 가능성을 제공 할 수 있습니다 (http://stackoverflow.com/questions/4565567/how-can -i-limit-ffmpeg-cpu-usage) –

+0

맞습니까? -threads 매개 변수는 어떻게 사용할 수 있습니까? 나는 스레드를 구현하기위한 적절한 튜토리얼을 찾을 수 없었다. – user735647

+1

FFMPeg에 -thread를 매개 변수로 전달합니다. 나는 곧 예제를 올릴 것이다. –

답변

3

여기

How can I limit FFMpeg CPU usage?

명시된 용액 FFMPEG 컴퓨터에 사용 가능한 코어의 수 미만으로 사용하는 스레드의 수를 제한하는 것이다.

귀하의 코멘트에 위로 다음, 당신은 [어떻게는 FFmpeg의 CPU 사용량을 제한 할 수 있습니다?]의 Argument via StartInfo

Process ffmpeg = new Process(); 
ffmpeg.StartInfo.UseShellExecute = false; 
ffmpeg.StartInfo.FileName = "..\ffmpeg.exe"; 
ffmpeg.StartInfo.Arguments = "-threads 2"; // <=== Add this line 
ffmpeg.StartInfo.CreateNoWindow = true; 
ffmpeg.Start(); 
+0

고마워요 :) 내가 시험해 보겠습니다. – user735647

+0

-threads = 1로 설정 했는데도 여전히 CPU 사용량에는 아무런 차이가 없습니다. – user735647

+0

인수의 구문은 "-threads = 1"이 아닌 "-threads 1"입니다. 코드에 문자 그대로 등호가 있었습니까? 그렇다면 제거하십시오. –

관련 문제