在 OpenCV 中写入 AVI 文件

2023-11-25

网上有示例,Learn OpenCv,O'reilly 中给出了代码。

经过多次尝试后,out.avi 文件写入了 0 字节。 我想知道我哪里出错了。

以下是我使用的代码...

int main(int argc, char* argv[]) {
    CvCapture* input = cvCaptureFromFile(argv[1]);
    IplImage* image = cvRetrieveFrame(input);

    if (!image) {
        printf("Unable to read input");
        return 0;
    }


    CvSize imgSize;
    imgSize.width = image->width;
    imgSize.height = image->height;



    double fps = cvGetCaptureProperty(
            input,
            CV_CAP_PROP_FPS
            );

    CvVideoWriter *writer = cvCreateVideoWriter(
            "out.avi",
            CV_FOURCC('M', 'J', 'P', 'G'),
            fps,
            imgSize
            );


    IplImage* colourImage;
    //Keep processing frames...
    for (;;) {

        //Get a frame from the input video.
        colourImage = cvQueryFrame(input);
        cvWriteFrame(writer, colourImage);

    }

    cvReleaseVideoWriter(&writer);
    cvReleaseCapture(&input);

}

我打赌 cvCreateVideoWriter 返回 NULL。只需一步步查看它是否属实。在这种情况下,问题可能出在 CV_FOURCC(..) 上,它找不到编解码器并强制返回 0;

您可以尝试使用 -1 而不是 CV_FOURCC。运行时会提示您选择合适的编解码器

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 OpenCV 中写入 AVI 文件 的相关文章

随机推荐

  • 在 Pyspark Dataframe 上透视字符串列

    我有一个像这样的简单数据框 rdd sc parallelize 0 A 223 201603 PORT 0 A 22 201602 PORT 0 A 422 201601 DOCK 1 B 3213 201602 DOCK 1 B 321
  • 如何在 swift 中使用 .a 静态库?

    我想在 swift 中使用我的 webrtc a 静态库 你能帮忙吗 我读到你不能在 swift 中使用静态库 是真的吗 你问的这个问题解决了吗 我今天也遇到这个问题了 一会儿就解决了 如果您尚未解决此问题 您可以尝试以下步骤 p s 这两
  • 如何验证国际化域名[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想验证 php 中的域名 url 该域名可能采用国际化域名格式 如希腊语 域名 http 他们有什么方法可以使用正则表达式来验证它吗 这是一个所谓的国际化域名 支持 IDN 域
  • 通过浏览器操作/图标禁用/启用 Chrome 扩展

    我正在开发的 chrome 扩展将内容脚本和 CSS 插入到网站的每个页面上 但是 用户可能有一个或多个页面 他或她不希望扩展程序在其上运行 因此如果我可以将浏览器操作设置为基本上打开 关闭切换 那就太好了 我想做的是这样的 chrome
  • 将 React Redux 与 next.js 结合使用

    我尝试将 Redux 与next js 启动器项目和我安装的next redux wrapper在该项目中 但我不确定该项目中的根文件在哪里 我尝试按照显示的教程进行操作next redux 包装器但没有成功 没变化 请帮助我如何将 Red
  • 如何在 iOS 上重置沙盒应用内购买以进行测试?

    我做了一个沙盒 iTunes 用户 购买了一个项目 这有效 但我的显示该项目的代码中存在一些问题 所以我想重新买来测试一下 问题是 我无法清除我的购买 我注销了我的沙盒用户 删除了应用程序并重新安装了它 更改了 iTunes 用户几次 该项
  • 如何使用 Eigen 3 表达“ = <= ”?

    我正在移植一些MATLAB代码到C 使用Eigen 3模板库 我正在寻找这个常见的良好映射MATLAB idiom K gt gt 1 2 3 4 5 lt 3 ans 1 1 1 0 0 因此 比较数组和标量 返回具有相同形状的布尔值数组
  • 用于检查多个值的 jQuery 'if' 条件

    在下面的代码中 是否有更好的方法使用 jQuery 检查条件 if test1 val first value test2 val second value test3 val third value test4 val fourth va
  • “条件调用”在 amd64 上的性能

    当考虑代码关键部分中的条件函数调用时 我发现 gcc 和 clang 都会围绕该调用进行分支 例如 对于以下 诚然微不足道的 代码 int32 t attribute noinline negate int32 t num return n
  • 将 SpriteKit 视图集成到 xib 视图中

    我有一个已经使用 xib 文件创建的视图 现在我想向此视图添加一些小元素 这些元素将使用 SpriteKit 中的一些物理动画 所以现在我需要一个 SKView 是否可以添加 SKView 作为与我的 xib 视图相对应的视图的子视图 我尝
  • Fortran 2018+ 中过时的 DO 循环

    我正在使用可能是在最新版本的 gfortran 之前编写的源代码 我知道 DO END DO 和 CONTINUE 的方式已更改 因此不能共享循环终止 有一个方便的链接here 问题是 我不知道该页面上的解释到底告诉我要做什么 如果我在新脚
  • Tomcat 7 tomcat-users manager-script /deploy 示例

    我正在尝试让管理器 部署在新安装的 Tomcat 7 0 34 上工作 但是当我尝试通过执行 PUT 进行部署时 我不断收到 403http localhost 8080 manager deploy 我还没有在 Tomcat 7 中使用它
  • Angular - POST 上传的文件

    我在用着Angular 打字稿将文件与 JSON 数据一起发送到服务器 下面是我的代码 import Component View NgFor FORM DIRECTIVES FormBuilder ControlGroup from an
  • Python:在“exec”环境中奇怪的“NameError:名称...未定义”

    我有信心至少对 Python 的作用域系统有一些基本的了解 现在我收到一个错误 不幸的是到目前为止我什至无法编写一个好的代码片段来进行复制 我尝试在一个新的小项目中重现它 但一切都按我的预期进行 我只能描述我所做的事情 希望有人能发现一种模
  • 是否可以在运行时将参数传递给 python 生成的 exe?

    我正在尝试文件 I O 我有一个小型练习程序 运行时会创建一个文本文件 我用 pyinstaller 打包它 这样双击 exe 就会创建一个新文件夹 并在其中放置一个带有 hello world 的文本文件 十分简单 然后我开始想知道mai
  • 如何使用 Boost Asio 减少编译时间

    Boost Asio 是一个很棒的库 但它有一个巨大的缺点 编译时间极慢 一个HTTP协议的简单实现 真的很简单 大约1k行代码 在GCC 4 4下编译需要大约13 5s 我尝试使用 PCH 但它并没有太多地改善编译时间 大约仅 1 秒 那
  • azure api-apps、logic-apps、web-apps 和 azure function 之间的区别

    azure API 应用程序 逻辑应用程序 Web 应用程序和 azure 函数之间有什么区别 这对开发者来说有什么不同 逻辑应用程序 逻辑应用提供了一种在云中简化和实施可扩展集成和工作流程的方法 它提供了一个可视化设计器 可以将流程建模并
  • 将选项传递给 ES6 模块导入

    是否可以将选项传递给 ES6 导入 这句话怎么翻译 var x require module someoptions to ES6 没有办法用一个单一的方法来做到这一点import声明 它不允许调用 所以你不会直接调用它 但你基本上可以做与
  • 在 Postgres 中聚合多个字段时填充缺失的行

    我每天使用 Postgres 汇总一组产品的销售额 不仅需要知道何时发生销售 还需要知道何时不发生销售以进行进一步处理 SELECT sd date COUNT sd sale id AS sales sd product FROM sal
  • 在 OpenCV 中写入 AVI 文件

    网上有示例 Learn OpenCv O reilly 中给出了代码 经过多次尝试后 out avi 文件写入了 0 字节 我想知道我哪里出错了 以下是我使用的代码 int main int argc char argv CvCapture