大华摄像头应用opencvsharp进行实时监控、监控录像保存和播放
1.配置大华摄像机参数
检查RTSP端口号
修改分辨率,在这里我们主要设置【辅码流】
大华RTSP协议解释
访问主码流
rtsp://admin:tld123456@192.168.1.10:554/cam/realmonitor?channel=1&subtype=0
访问辅码流
rtsp://admin:tld123456@192.168.1.10:554/cam/realmonitor?channel=1&subtype=1
2.opencvsharp引用:
3.opencvsharp代码示例:
获取视频流:
private void savestream() { VideoCapture cap = new VideoCapture(); cap.Open("rtsp://admin:tld123456@192.168.1.10:554/cam/realmonitor?channel=1&subtype=1"); Mat Camera_GImg = new Mat(); string path = System.Environment.CurrentDirectory+"\\video\\666.avi"; OpenCvSharp.Size sz = new OpenCvSharp.Size(640,480); VideoWriter vw = new VideoWriter(path, FourCCCalcurator.Run('X', 'V', 'I', 'D'), cap.Fps, sz, true); while (true) { cap.Read(Camera_GImg); if (Camera_GImg.Empty()) { break; } else { vw.Write(Camera_GImg); } } }
播放监控录像:
private void readvideo() { byte[] image_byte = new Byte[2048]; VideoCapture cap = new VideoCapture(); string path = System.Environment.CurrentDirectory + "\\video\\666.avi"; cap.Open(path); while (true) { Mat Camera_GImg = new Mat(); cap.Read(Camera_GImg); if (Camera_GImg.Empty()) { isopen = !isopen; break; } else { image_byte = Camera_GImg.ToBytes(); #region 图片嵌入picturebox MemoryStream ms = new MemoryStream(image_byte); ms.Position = 0; img = System.Drawing.Image.FromStream(ms); this.Invoke((EventHandler)delegate//将分线程对主线程的调用委托给主线程 { pictureBox1.BackgroundImage = img; pictureBox1.Refresh(); }); #endregion Camera_GImg.Release();//释放,别等到gc来回收,太占内存 } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)