如何使用c#中的套接字编程从ip摄像头捕获

时间:2013-11-05 05:43:35

标签: c# sockets tcpclient tcplistener

我希望通过c#从Axis IP摄像头获取实时视频。我想使用套接字编程来获取数据包并对其进行反序列化以获取视频。有办法做到这一点吗?

编辑: 视频在:

 http://root:pass@192.168.0.90/axis-cgi/mjpg/video.cgi

我的代码是:

   Socket sock = new Socket(AddressFamily.InterNetwork
    , SocketType.Stream, ProtocolType.Tcp);      
           sock.Connect("192.168.0.90", 80);

            if (sock.Connected)
            {
                byte[] bytes = new byte[256];

                int i = sock.Receive(bytes);
            }

但我无法接受任何事情..是否可以添加用户名和密码或完整地址来解决套接字?

2 个答案:

答案 0 :(得分:0)

如果您愿意重复使用开源库,那么请看看AForge。

http://en.wikipedia.org/wiki/AForge.NET

它可以处理一堆IP摄像机。


如果您不想使用现有库,则可以使用其他语言转换现有客户端。这是一个用nodejs中的javascript编写的。此客户端通过http客户端连接并将映像保存到磁盘。

https://github.com/mjohnsullivan/axiscam

我不相信它会从头开始实现httpclient或文件系统编写器,因为这是一项复杂的练习。

答案 1 :(得分:0)

你是相机的客户,所以听众不会工作,因为那是“服务器”。

你将从cam =连续的jp​​g图像流中获得一个mjpg流。

要从流中获取图像,例如在codeplex上有mjpg解码器:http://mjpeg.codeplex.com/