让我先声明我不是C
背景。我是一名 PHP 开发人员。因此,到目前为止,我编写的所有代码都是通过从其他示例中获取点点滴滴并对其进行微调以满足我的要求。所以,如果我问得太基本或明显的问题,请多多包涵。
我开始FFmpeg
使用CreateProcess()
通过
int startFFmpeg()
{
snprintf(cmd, sizeof(cmd), "D:\\ffpmeg\bin\ffmpeg.exe -i D:\\video.mpg -r 10 D:\\frames");
PROCESS_INFORMATION pi;
STARTUPINFO si={sizeof(si)};
si.cb = sizeof(STARTUPINFO);
int ff = CreateProcess(NULL, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
return ff;
}
我需要做的是获取该PID
进程,然后稍后检查它是否在一段时间后仍在运行。这基本上是我正在寻找的:
int main()
{
int ff = startFFmpeg();
if(ff)
{
// great! FFmpeg is generating frames
// then some time later
if(<check if ffmpeg is still running, probably by checking the PID in task manager>) // <-- Need this condition
{
// if running, continue
}
else
{
startFFmpeg();
}
}
return 0;
}
我做了一些研究,发现它PID
在 中返回PROCESS_INFORMATION
,但我找不到显示如何获取它的示例。
一些元数据
操作系统:Windows 7
语言:C
IDE:Dev C++