0

是否可以FFmpeg从 C 程序中开始,然后不等到进程终止,而是继续执行下一行代码。目前,我正在使用

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;
}

一些元数据

操作系统: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 回答