带有“ int main(int argc, char **argv) ”的 VideoCapture

VideoCapture with " int main(int argc, char **argv) "

我正在尝试使用 VideoCapture。下面是我的部分代码。

当我 运行 我的代码时,我得到了这个:

Error! Insufficient parameters provided.

如何使用此代码使用我的视频。我想用 VLC 打开一个流。 或者有没有其他方法,我想用。

我搜索到 argv[1] 将是我的视频文件。但是我不知道如何显示我的文件以及如何将我的文件定义为此代码。

为了帮助未来的用户,我会做一些改变:

是:

LOG_DEBUG("Error! Insufficient parameters provided.");

是:

std::string program(argv[0]);
LOG_DEBUG("Error! Insufficient parameters provided.");
LOG_DEBUG("Please provide a command line argument.");
LOG_DEBUG("Example:  " << program << " VIDEO_FILE_NAME");

解释:

在命令行上,当调用程序时,命令行中的参数被复制到argv 保存的字符串数组中。 argv[0] 是第一个参数,它是程序本身的文件名。换句话说,argv[i] for 0 <= i < argc 从命令行填充到字符串数组 argv 中。如果您重命名该程序的可执行文件,下次您 运行 该程序时 argv[0] 会有所不同。

数组 argv 的索引从 0argc-1。当 main 被调用时,这个字符串数组和 argc 被设置。由软件决定要做什么。在这种情况下,您的应用程序测试 argc 并发现如果没有提供参数(即 argc < 2),则用户提供的一个用户参数不存在,报告错误并 return。

顺便说一下,还有另一种形式的 main 您可以使用:

int main(int argc, char** argv, char** envp)

argc = 参数个数。 argv = 参数字符串数组 envp = 环境变量名称=值对数组

因此,除了简单的命令行参数传递之外,您还可以选择编写 main 函数来获取环境变量(而不是 shell 变量)并据此决定细微差别的操作。选项比比皆是。

但就目前而言,如果您的代码能够报告出现错误的原因并且所提供的建议似乎能够做到这一点,那么您的代码将会有所帮助。

祝你好运。