ffmpeg를 통해 인수를 실행할 수는 있지만 출력 결과를 스트림으로 읽을 수 있어야합니다 (알고있는 것처럼 ffmpeg가 오래 걸릴 수 있습니다. 현재 프레임과 함께 두 번째로 stderr).ffmpeg 출력을 읽고 양식으로 보내기
ProgressForm prog = new ProgressForm();
으로 전체적으로 선언 된 prog
이라는 양식이 있습니다. 사용자가 비디오 파일의 폴더를 입력하고 일부 데이터가 수집 된 다음 ffmpeg로 인코딩 프로세스를 시작하기 위해 버튼이 눌러집니다. button_click 이벤트는 새 스레드과 같이 작성
runFFMpeg = new Thread(run_ffmpeg);
runFFMpeg.start();
runFFMpeg가 private Thread runFFMpeg;
와 함께 전 세계적으로 이전 초기화되었다.
는 지금은 방법 run_ffmpeg 있습니다
private void run_ffmpeg()
{
string program = "C:\\ffmpeg64.exe";
string args = //some arguments that I know work;
ProcessStartInfo run = new ProcessStartInfo(program,args);
run.UseShellExecute = false;
run.CreateNoWindow = true;
run.RedirectStandardOutput = true;
run.RedirectStandardError = true;
Process runP = new Process();
runP = Process.Start(run);
runP.WaitForExit();
//NOW WHAT?
}
내가 데이터를 라이브 얻기 위해 지금 할 모르겠어요,하지만 내가 할 수있는 경우에, 나는 컨트롤을 가지고 있습니다 prog
을 업데이트 할 것 (예를 들어, 관심 분야)는 "frame = 240 fps = 12.8 q = 0.0 size = 1273802kB time = 00 : 00 : 08.008 bitrate = 4415.2kbits/s dup = 46 drop = 0 ". 나는 내가 필요로하는 것을 얻기 위해 그것을 파싱하는 방법을 안다, 나는 단지 그 라인을 필요로한다!