gpt4 book ai didi

c - 将提取的帧名称存储在数组中 - ffmpeg

转载 作者:太空宇宙 更新时间:2023-11-04 03:57:37 27 4
gpt4 key购买 nike

我完全是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;
}

在编译和运行程序时,我在输出文件夹中得到了预期的帧。问题是我想在提取每个帧名称时将其存储在一个数组中。到目前为止,我还没有遇到过类似的问题,所以我决定为此创建一个新线程。我希望这是可能的,并希望能朝着正确的方向插入。

最佳答案

现在,由于文件名未显示为系统命令的输出,因此使用 popen 或 fork 将不起作用。我建议您对输出目录 (D:\frames) 执行 nftw。它将列出文件夹中的所有文件。

示例代码: http://linux.die.net/man/3/nftw

关于c - 将提取的帧名称存储在数组中 - ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14954852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com