IP Camera连续快照与视频

时间:2017-11-28 08:16:44

标签: c# video-streaming cgi multipart

我正在使用c#2013制作项目,Windows窗体和此项目将使用IP摄像头使用CGI命令长时间显示视频。 我从文章中了解到,IP摄像机的流视频的返回是一个连续的多部分流。我找到了一些样本来显示像Writing an IP Camera Viewer in C# 5.0

这样的视频

但是我看到很多代码来提取代表单个图像的单个部分并显示它等等。 此外,我尝试使用以下代码从相机拍摄连续快照。

    HttpWebRequest req=(HttpWebRequest)WebRequest.Create("http://192.168.1.200/snap1080");
    HttpWebResponse res = (HttpWebResponse)req.GetResponse();

    Stream strm = res.GetResponseStream();
    image.Image = Image.FromStream(strm);

我在循环中重复了这段代码并保留了一秒钟。一秒钟拍摄的快照,它给我一个每秒88到114个快照的数字

恕我直言,第一个显示视频的示例进行了大量处理,以提取多部分响应的单个部分并显示它,这可能与拍摄连续快照的其他方法一样慢。 所以我要求其他开发者'如果他们看到显示视频的两种方法之间存在其他差异,请参阅此问题。另外我想知道在内存上接收连续多部分流的效果是安全还是会产生内存不足错误。 提前致谢

2 个答案:

答案 0 :(得分:1)

如果你每1-3秒拍摄超过1个jpeg,更好地捕获H264视频流,则需要更少的带宽和CPU。

通常mjpeg流比同一h264流大10-20倍。因此,每秒80个快照是一个非常大的数量。

答案 1 :(得分:0)

只要您正确处理图像和流,就不会出现内存问题。我过去使用IP摄像机做了类似的事情,甚至将我拍摄的所有图像作为快照转换回使用ffmpeg的视频(我认为是)。