zoukankan      html  css  js  c++  java
  • 使用OpenCV进行网络摄像头的图像采集及视频存储

    rtspURL格式

    rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream
    1) username  用户名,常用 admin
    2) password  密码,常用 12345
    3) ip        摄像头IP,如 192.0.0.64
    4) port      端口号,默认为 554
    5) codec     视频编码模式,有 h264、MPEG-4、mpeg4 等
    6) channel   通道号,起始为1,例如通道1,则为 ch1
    7) subtype   码流类型,主码流为 main,辅码流为 sub
    

    主要参考了这篇博客中的内容。
    ip地址可以通过SADPTOOL获取,端口号注意是填rtsp端口号,可在浏览器输入ip地址进入配置中查询。

    视频保存

    使用了VideoWriter类(注:windows系统中保存文件路径不填写绝对路径可能会出问题,原因未知)。用鼠标响应函数和滑动调函数模拟了开关,点击滑动条开始录制,再次点击停止录制。

    代码

    #include "opencv2/highgui/highgui.hpp"
    #include "opencv2/imgproc/imgproc.hpp"
    using namespace cv;
    
    
    
    int writeFlag = 0;
    void OnMouseClick(int event, int x, int y, int flag, void* param /* = NULL */)
    {
        if(event==CV_EVENT_LBUTTONDOWN)
          writeFlag = !writeFlag;
    }
    
    int main(int argc, char** argv)
    {
        
        String rtsp_addr = "rtsp://admin:123456@192.168.1.1:554/MPEG-4/ch1/main/av_stream ";
        namedWindow("Video Stream", CV_WINDOW_AUTOSIZE);
        createTrackbar("writeFlag:
    ", "Video Stream", &writeFlag, 1);
        setMouseCallback("Video Stream", OnMouseClick);
        
        VideoCapture cap(rtsp_addr);
        
        Mat frame;
        Mat BackGround;
        cap >> BackGround;
        
        VideoWriter writer("F:/opencv3/test2/x64/Debug/VideoTest.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25.0, Size(1280, 720));
        for (;;) {
            cap >> frame;
            if (frame.empty())
                break;
            
            if(writeFlag)
                writer << frame;
            imshow("Video Stream", frame);
            
            if (waitKey(10) == 'q')
                break;
        }
        //waitKey(0);
    }
    
    
  • 相关阅读:
    docker 基础
    shell
    MySQL之MGR
    MySQL之读写分离
    MySQL主从复制
    MySQL之数据类型
    MySQL之索引与约束条件
    SQL语句进阶
    SQL语句初识
    Linux之MySQL安装
  • 原文地址:https://www.cnblogs.com/messier/p/7911767.html
Copyright © 2011-2022 走看看