在网站中嵌入Cgi视频

时间:2014-02-24 22:37:25

标签: c# javascript cgi

大家好我有各种网络摄像头我想嵌入我的网站

http://81.137.212.183:4483/GetData.cgi

问题是相机有时会停机,所以我需要在尝试渲染之前检查它们是否在c#中处于活动状态:

<img height="240" width="320" src="http://81.137.212.183:4483/GetData.cgi" /> 

请有人建议我如何检查cgi在c#或其他推荐中是否有效。如果我简单地加载cgi并且它已关闭它会导致浏览器崩溃

一项建议是使用以下代码:

以下方法的问题是网站永远加载,并且从未显示过收藏夹图标http://www.camsecure.co.uk/

newImage = new Image();

function LoadNewImage() {
    var unique = new Date();
    document.images.webcam.src = newImage.src;
    newImage.src = "http://collectart.dyndns.org:4484/Jpeg/CamImg.jpg?time=" + unique.getTime();
}

function InitialImage() {

    var unique = new Date();
    newImage.onload = LoadNewImage();
    newImage.src = "http://collectart.dyndns.org:4484/Jpeg/CamImg.jpg?time=" + unique.getTime();
    document.images.webcam.src = "http://collectart.dyndns.org:4484/Jpeg/CamImg.jpg?time=" + unique.getTime();

    document.images.webcam.onload = "";
}

2 个答案:

答案 0 :(得分:2)

首先,您需要在第一个链接上放置一些安全性。看来相机设置是公开的,任何人都可以使用。

如果唯一的问题是漫长的加载时间会减慢网站的其余部分,您可以将图片加载到iframe而不是直接加载到图片代码中 - 然后挂起只在iframe中:

<iframe src="http://81.137.212.183:4483/Simple/home.htm?IMG"></iframe>

要检查IP摄像头是否已启动,您只需尝试获取主机页面:

using System.Net.Http;
...

var uri = new Uri("http://81.137.212.183:4483/Simple/index.htm");
var task = new HttpClient().GetAsync(uri);
if (task.Wait(TimeSpan.FromSeconds(1)) && task.Result.IsSuccessStatusCode)
{
    // SUCCESS!
}
else
{
    // FAILURE... try next camera
}

但是,如果相机可用,图像.cgi位置仍然会失败。在这种情况下,即使您获得成功,最好加载iframe。

答案 1 :(得分:0)

应该注意的是,有一些安全的方法可以执行此操作,这些方法不需要C#,它将与任何支持Internet浏览器的设备一起查看相机图像,这些图像将自动显示存储在磁盘上的最后一个接收到的相机图像,如果相机不可用。

更多信息:Showing Secure Methods Using PHP To Display Your IP Cameras