You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DIgoo(DG-MIQ)网络摄像头Windows Form C#流媒体连接问题求助

解决DIgoo DG-MIQ摄像头WinForm C#流媒体连接问题

问题核心分析

你碰到的问题本质是仅用IP地址无法定位到摄像头的MJPEG流资源——这类IP摄像头不会把流媒体直接放在根路径(/),而且默认会绑定特定端口(不是所有设备都用80端口),加上你代码里的地址开头还有个空格,这也会导致地址无效。

第一步:找到摄像头的正确端口和MJPEG流路径

DIgoo DG-MIQ这类设备一般自带Web管理界面,你可以通过以下方式获取关键信息:

  • 确保电脑和摄像头在同一局域网,打开浏览器直接输入摄像头IP(比如192.100.0.106),如果能进入管理页面,登录后找「流媒体设置」「视频流配置」这类选项,里面会明确给出MJPEG流的完整地址(比如http://192.100.0.106:8080/mjpegfeed)。
  • 如果直接输IP打不开,试试常见的IP摄像头端口:8080、554、9000,比如访问http://192.100.0.106:8080,看是否能进入管理界面。
  • 也可以打开摄像头配套的手机APP,在设备详情页找「流媒体地址」或「设备信息」,一般会直接给出可使用的流地址。

第二步:先验证流地址是否有效

找到地址后,先在浏览器里测试:输入完整的流地址,如果浏览器能持续刷新显示摄像头画面,说明这个地址是有效的,接下来就可以用到代码里。

第三步:调整你的C#代码

你的现有代码缺少端口、流路径,还有地址开头的空格问题,调整后的完整示例如下:

public partial class vstream : Form 
{
    MJPEGStream stream;

    public vstream() 
    {
        InitializeComponent();
        // 替换成你找到的完整MJPEG流地址,注意不要有空格
        string streamUrl = "http://192.100.0.106:8080/mjpegfeed";
        stream = new MJPEGStream(streamUrl);
        
        // 如果摄像头需要账号密码,添加这两行
        stream.Login = "你的摄像头用户名";
        stream.Password = "你的摄像头密码";
        
        stream.NewFrame += stream_NewFrame;
    }

    private void stream_NewFrame(object sender, NewFrameEventArgs eventArgs) 
    {
        // WinForm中不能直接在非UI线程更新控件,必须用Invoke切换到UI线程
        Bitmap bmp = (Bitmap)eventArgs.Frame.Clone();
        // 释放旧的图片资源,避免内存泄漏
        pictureBox1.Image?.Dispose();
        
        pictureBox1.Invoke(new Action(() => 
        {
            pictureBox1.Image = bmp;
        }));
    }

    // 在Form加载时启动流
    private void vstream_Load(object sender, EventArgs e)
    {
        try
        {
            stream.Start();
        }
        catch (Exception ex)
        {
            MessageBox.Show($"连接失败:{ex.Message}");
        }
    }

    // Form关闭时停止流并释放资源
    private void vstream_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (stream != null && stream.IsRunning)
        {
            stream.Stop();
            stream.Dispose();
        }
    }
}

额外注意事项

  • 跨线程UI更新:NewFrame事件是在后台线程触发的,WinForm不允许直接在非UI线程操作控件,必须用Invoke或BeginInvoke切换线程,否则会抛出异常。
  • 账号认证:大部分IP摄像头默认开启访问认证,一定要在代码里设置正确的用户名和密码,否则会返回401未授权错误。
  • RTSP流备选:如果MJPEG流无法正常工作,你可以试试RTSP协议,DIgoo摄像头的RTSP地址一般格式是rtsp://用户名:密码@192.100.0.106:554/stream1,可以用FFmpeg.AutoGen或EmguCV这类库来处理RTSP流。

内容的提问来源于stack exchange,提问作者haris mehmood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:41:57