C# 通过UDP 远程监控摄像头

本文介绍了一种使用UDP协议进行远程视频传输的方法,包括客户端采集摄像头数据并通过UDP发送,以及服务端接收并显示图像帧的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景: 项目需要到网上想下载一个UDP远程通信的例子,但是居然没有下到合适的例子。

资源下载:https://download.youkuaiyun.com/download/gigizhongyan/12319275

 

实现效果

 

 

关键代码:

 

客户端 采集摄像头数据 通过UDP发送

 

   private void CameraConn()

        {

            videoSource = new VideoCaptureDevice(videoDevices[comboBox1.SelectedIndex].MonikerString);

 

            videoSourcePlayer1.VideoSource = videoSource;

            videoSourcePlayer1.NewFrame += videoPlayer_RGB_NewFrame;

            videoSourcePlayer1.Start();

 

        }

 

 void videoPlayer_RGB_NewFrame(object sender, ref Bitmap image)

        {

            var ip = IPAddress.Parse(server.Text);

            var multicast = new IPEndPoint(ip, 4444);

            MemoryStream ms = new MemoryStream();

            image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

            byte[] bytes = new byte[ms.Length];

            bytes = ms.ToArray();

 

 

            client.Send(bytes, bytes.Length, multicast);

            //Thread.Sleep(1);

 

        }

 

服务端代码:

 

 private void Form1_Load(object sender, EventArgs e)

        {

            //创建等待连接线程

            Thread thread = new Thread(new ThreadStart(waitConnect));

            thread.IsBackground = true;

            thread.Start();

        }

   private void waitConnect()

        {

        

            client = new UdpClient(new IPEndPoint(IPAddress.Any, UDP_PORT));

             

         

 

            //启动接收线程

            Thread thread = new Thread(new ThreadStart(recvImage));

            thread.IsBackground = true;

            thread.Start();

        }

 

  private void recvImage()

        {

            while(true)

            {

                //接受图像帧数据

                byte[] recvBuf = client.Receive(ref remote);

                MemoryStream ms = new MemoryStream(recvBuf);

                try

                {

                    //显示到pictureBox上

                    pictureBox1.Image = Image.FromStream(ms);

                }

                catch (ArgumentException)

                { }

            }

        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值