码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • OpenCV读写视频操作


    一、读取视频流

    在使用OpenCV读取摄像头,或者处理一些磁盘中保存的视频文件时,通常使用VideoCapture进行读取。

    std::string video_path("/path/to/the/video");
    cv::VideoCapture VCap( video_path );
    if( !VCap.isOpened() )
    {
        CV_Error_(cv::Error::StsBadArg, ("Error opening video: %s", video_path.c_str()));
    }
    

    二、写入视频流

    而对于处理后的结果,想要编码并保存到磁盘时,通常使用VideoWriter来操作。

    int frame_fps = 24;
    int Wd = 1920;
    int Hd = 1080;
    std::string video_out_name("/path/to/save/the/video");
    cv::VideoWriter VOut;
    VOut.open( video_out_name, cv::VideoWriter::fourcc('X','V','I','D'),
               frame_fps, cv::Size(Wd, Hd) );
    if( !VOut.isOpened() )
    {
        CV_Error_(cv::Error::StsBadArg, ("Error opening video: %s", video_out_name.c_str()));
    }
    
    cv::Mat res;
    //...
    VOut << res;
    
    //...
    VOut.release(); //在处理完成后用release释放资源
    

    三、写入视频时的编码格式

    OpenCV VideoWriter一些常见的编码格式以及对应的CV_FOURCC的写法:

    cv::VideoWriter::fourcc('P', 'I', 'M', '1') - MPEG-1
    cv::VideoWriter::fourcc('M', 'J', 'P', 'G') - motion-jpeg
    cv::VideoWriter::fourcc('M', 'P', '4', '2') - MPEG-4.2
    cv::VideoWriter::fourcc('D', 'I', 'V', '3') - MPEG-4.3
    cv::VideoWriter::fourcc('D', 'I', 'V', 'X') - MPEG-4
    cv::VideoWriter::fourcc('U', '2', '6', '3') - H263
    cv::VideoWriter::fourcc('I', '2', '6', '3') - H263I
    cv::VideoWriter::fourcc('F', 'L', 'V', '1') - FLV1
    cv::VideoWriter::fourcc('A', 'V', 'C', '1') - H264
    cv::VideoWriter::fourcc('I', '4', '2', '0') - YUV
    

    参考资料

    [1] OpenCV – cv::VideoWriter::fourcc可支持的视频编码格式 https://www.stubbornhuang.com/2118/

    本文作者 :phillee
    发表日期 :2022年09月13日
    本文链接 :https://i.cnblogs.com/posts/edit;postId=16688729
    版权声明 :自由转载-非商用-非衍生-保持署名(创意共享3.0许可协议/CC BY-NC-SA 3.0)。转载请注明出处!
    限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

  • 相关阅读:
    Unity制作透明材质直接方法——6.15山大软院项目实训
    蓝桥杯备战刷题(自用)
    (一)模型量化与RKNN模型部署
    VUE系列 --- 网络模块axios(二 )
    自建ES6.2.4切阿里云商业版ES(7.10)整体方案
    分布式电源接入对配电网影响分析(Matlab代码实现)
    github.com/holiman/uint256 源码阅读
    标准I/O和系统I/O的本质区别
    【人工智能项目实践】Day2基于CNN的ciffar10图像分类任务 FashionMNIST图像分类任务 人脸微笑数据处理
    ESP8266-Arduino编程实例-HDC1008温度湿度传感器驱动
  • 原文地址:https://www.cnblogs.com/phillee/p/16688729.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号