0

C プログラム内から開始FFmpegし、プロセスが終了するまで待たずに次のコード行に進むことは可能ですか? 現在、私は使用しています

int startFFmpeg()
{
    char cmd[100] = "D:\\ffmpeg\\bin\\ffmpeg.exe -i D:\\video.mpg -r 10 D:\\frames\\%d.jpg";
    int ff = system(cmd);
    return ff;
}

int main()
{
   int ff = startFFmpeg(); // great! ffmpeg has started, now immediately move to next part of code
   if(ff)
   {
       // execute code in this block simultaneously?
       // i.e. do not wait till ffmpeg closes
   }
   else
   {
      // error handling
   }

  return 0;
}

一部のメタデータ

OS : Windows 7
言語: C
IDE : Dev C++

アップデート

使ってみCreateProcess()ました。問題はffmpeg.exe、タスクバーにリストされているが、フレームが抽出されていないことです。

char cmd[100] = "D:\\ffmpeg\\bin\\ffmpeg.exe -i D:\\video.mpg -r 10 D:\\frames\\%d.jpg";
PROCESS_INFORMATION pi;
STARTUPINFO si;
CreateProcess(cmd, "", 0, 0, 0, 0, 0, 0, &si, &pi);
4

1 に答える 1

2

私は解決策を見つけました。に対して間違った引数を使用していましたCreateProcees()。次のコードで解決しました。

CreateProcess(NULL, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
于 2013-02-21T13:33:50.883 に答える