我是C的完全新手。我来自PHP背景,但碰巧我在PHP中编写的代码需要转换为C.最初是Java,但现在要求是C
在完成一些教程之后,我获得了C的基础知识并编写了以下内容以便在c程序中运行ffmpeg.exe
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *app = "D:\\ffmpeg\\bin\\ffmpeg.exe -i";
char *input = " D:\\video.mpg";
char *output = " D:\\frames\\image%d.jpg";
char *param = " -r 10";
char str[300];
snprintf(str, sizeof str, "%s%s%s%s", app, input, param, output);
// str contains "D:\ffmpeg\bin\ffmpeg.exe -i D:\video.mpg -r 10 D:\frames"\image%d.jpg
system(str); // <-- working fine, frames are being extracted
/*
do something here to store each extracted frame in an array
so that the array contains image1.jpg, image2.jpg, image3.jpg...and so on
*/
getch();
return 0;
}
在编译和运行程序时,我按预期在输出文件夹中获取帧。问题是我希望在提取时将每个帧名称存储在数组中。到目前为止,我还没有遇到类似的问题,所以我决定为它创建一个新的线程。我希望这是可能的,并希望在正确的方向上轻推。
答案 0 :(得分:1)
现在由于文件名不显示为使用popen或fork输出到系统命令将无法正常工作。我会重新命令你在输出目录(D:\ frames)上执行nftw。它将列出文件夹中的所有文件。