问题是这样的。我现在想做一个桌面应用程序,让它能接收网页上的摄像头拍摄到的画面。或者如何实现在同一WIFI下远程连接监控。
这是写的一点代码。从网页获取视频流,不过感觉获取的视频流好像不对。
            string s = "http://147.134.38.233/axis-cgi/mjpg/video.swf?resolution=640x480&camera=1";
            HttpWebRequest wrq = (HttpWebRequest)HttpWebRequest.Create(s);
            HttpWebResponse wrs = (HttpWebResponse)wrq.GetResponse();
            Stream stream = wrs.GetResponseStream();
            byte[] bytes0 = new byte[128];
            byte[] bytes1 = new byte[128];
            byte[] bytes= new byte[256];
            MemoryStream ms = new MemoryStream(2048);
            for (int i = 0; i < 80000; i++)
            {
                stream.Read(bytes1,0,128);
                Encoding enc = Encoding.ASCII;
                xux = enc.GetChars(bytes1);

解决方案 »

  1.   

    是啊。我看了一个论文,写的是视频留传过来的是一个一个的图片。然后把图片连续播放。不过我抓到的视频流感觉明显和论文里写的不一样啊
    论文地址http://www.doc88.com/p-319766915385.html
      

  2.   

     string sourceURL = "http://147.134.38.233/axis-cgi/mjpg/video.swf?resolution=640x480&camera=1"; byte[] buffer = new byte[100000]; int read, total = 0; // create HTTP request  HttpWebRequest req = (HttpWebRequest) WebRequest.Create( sourceURL ); // get response  WebResponse resp = req.GetResponse( ); // get response stream  Stream stream = resp.GetResponseStream( ); // read data from stream  while ( ( read = stream.Read( buffer, total, 1000 ) ) != 0 ) {      total += read; }  // get bitmap  Bitmap bmp = (Bitmap) Bitmap.FromStream( new MemoryStream( buffer, 0, total ) );
    map = bmp;                那看看这个这个显示倒数第二行代码参数无效。
      

  3.   

    这个网址下载的是一个swf格式的文件,你可以分析这个swf文件的格式(可以用SwfDotNet),或者找个直接返回mjpeg格式的视频流的网址。
      

  4.   

    什么样的是MJPENG个事的视频流
      

  5.   

    Motion JPEG(MJPEG),这个不是你论文里提到的视频数据格式吗?
    就是可以看成一幅一幅jpeg图片连起来的一种视频格式。
      

  6.   

    你抓到的是swf文件,你看response的header中有:
    Content-Type: application/x-shockwave-flash
    就说明这是一个swf文件,你要用上面说的swf文件的解析库去解这个文件
      

  7.   

    问题解决了。贴上来:
     class CameraClass
        {
            public Bitmap map;        private Bitmap GetCameraScreen(string url)
            {
                Bitmap bitmap = null;
                WebClient web = new WebClient();
                byte[] tempData = web.DownloadData(url);
                MemoryStream ms = new MemoryStream(tempData);
                bitmap = new Bitmap(ms);
                return bitmap;
            }
            public void Main()
            {
                string tempUrl = "http://192.168.16.96:82/snapshot.cgi?user=admin&pwd=密码";
                map = GetCameraScreen(tempUrl);
            }
         
        }
      

  8.   

    snapshot.cgi截取网页上一个图片。然后处理。返回后放到控件上。在用计时器一直循环就成了视频了。