OpenCVsharp读取大华网络摄像头(rtsp)

一、准备

       Nuget安装Opencvsharp,注意要同时安装Opencvsharp4.runtime.win,不然程序会报错

二、读取写入代码

      每个相机的rtsp格式不一样,大华的是rtsp://账号:密码@IP:端口/cam/realmonitor?channel=通道号&subtype=0(1是辅码流)

 using (var capture = new VideoCapture(rtspStr))
 using (var writer = new VideoWriter("output.avi", VideoWriter.FourCC(@"XVID"), capture.Fps, new OpenCvSharp.Size(capture.FrameWidth, capture.FrameHeight)))
 {
     if (!capture.IsOpened())
     {
         Console.WriteLine("Unable to connect to the network camera");
         return;
     }

     if (!writer.IsOpened())
     {
         Console.WriteLine("Unable to open writer");
         return;
     }

     using (var window = new Window("video"))
     {
         Mat frame = new Mat();
         while (true)
         {
             capture.Read(frame);
             if (frame.Empty())
                 break;

             writer.Write(frame);                       
             window.ShowImage(frame);

             if (Cv2.WaitKey(30) >= 0)
                 break;
         }
     }
 }

三、注意点

       3.1 VideoWriter不能直接修改视频码率,码率影响因素:视频的长宽,帧率大小、编码格式(例子是XVID)

       3.2 码率格式设置异常时,可能会在new VideoWriter这句报错,也可能会导致VideoCapture.Isopened()返回false(完全不能理解这个逻辑)

       3.3 网络摄像头提供的视频码率太高的时候,视频会掉帧

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值