视频捕获与" int main(int argc, char **argv) "



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

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

错误!提供的参数不足。

我如何使用我的视频和这个代码。我想用 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]是第一个参数,它是程序本身的文件名。 换句话说,0 <= i < argcargv[i]填充在从命令行argv的字符串数组中。 如果重命名程序可执行文件,则下次运行该程序时argv[0]会有所不同。

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

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

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

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

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

但就目前而言,如果您的代码报告了错误的原因并且提供的建议似乎可以做到这一点,它将很有帮助。

祝你好运。

最新更新