Este artículo muestra como incluir en una página Web hospedada en un servidor Microsoft IIS video en vivo
generado por una Cámara de Red Axis usando un servidor ftp intermedio.
Aplica a los modelos AXIS 2100/2120/2400/2401/2420 desde la versión de firmware 2.12.
La información en este artículo se aplica a:
- AXIS 2100/2120/2400/2401/2420 desde la versión de firmware 2.12
Resumen
Este artículo muestra como incluir en una página web hospedada en un servidor Microsoft IIS video en vivo generado por una Cámara de Red Axis usando un servidor ftp intermedio.
Más información
¡¡Así es como se implementó la demo de Goldie!!
Si un sitio tiene muchas conexiones simultaneas usted debe "proteger" la Cámara de Red Axis de una sobrecarga de usuarios. Un sitio de alta demanda en Internet puede sobrecargar la Cámara de Red Axis ya que sólo pueden recibir sus imágenes en vivo un máximo de 10 usuarios simultáneos.
Puede prevenir esto haciendo un buffer de las imágenes en un servidor web de alto desempeño. La Cámara de Red Axis tiene integrada una función que le permite descargar imágenes automáticamente al "servidor buffer". Abajo explicaremos como puede llevar esto a cabo en un servidor web Microsoft IIS.
Descripción general del sistema (Ver la imagen superior)
Configure la Cámara de Red Axis para enviar imágenes de manera secuencial a un servidor FTP. Puede hacer esto utilizando el asistente de configuración del producto. El servidor Web (en la mayoría de los casos la misma computadora que el servidor FTP) generará a partir de estas imágenes un flujo de imágenes para todos los usuarios que accedan a la página web.
Configurando el servidor Microsoft IIS/PWS intermedio
Use el LiveImg.dll cuando desee enviar imágenes jpeg en movimiento (motion jpeg) desde un servidor Web basado en Windows NT. LiveImg lee las imágenes jpeg desde el disco duro y agrega los encabezados HTTP requeridos para "motion jpeg" antes de que las imágenes sean enviadas al cliente.
LiveImg es un ISA (Extensión DLL ISAPI) de Windows. Usted debe de usar un servidor Web compatible con ISAPI como el Microsoft IIS/PWS 4.0 para ejecutar LiveImg.dll.
El LiveImg.dll es ejecutado de la misma manera que cualquier otro programa CGI dentro de su página HTML, con parámetros como ruta de la imagen, cuadros por segundo, duración, etc.
Preparando el servidor FTP y Web
- Crear el directorio de imágenes en el servidor FTP.
Ejemplo: c:\inetpub\ftproot\live
- Crear un alias para el Servidor Web (directorio virtual) y utilícelo como la ruta de la imagen en la página Web.
Ejemplo: http://[Servidor Web]/live/
- Configure la Cámara para que almacene imágenes continuamente en este directorio FTP. Tome en cuenta que estas imágenes se tienen que sobre-escribir a fin de que el nombre del archivo siempre sea el mismo.
- Obtenga el LiveImg.dll aquí y cópielo al directorio "ejecutable" en la estructura de su servidor Web (comúnmente c:\inetpub\wwwroot\cgi-bin si está usando Microsoft IIS/PWS).
Importante: Si necesita reinstalar LiveImg.dll debe detener el servicio WWW, instalar el LiveImg.dll y entonces iniciar el servicio de nuevo. Microsoft IIS/PWS carga el ISA cuando este es llamado por primera vez y no lo descarga hasta que el servicio es detenido.
- Copiar el componente ActiveX Axis para despliegue de imágenes (disponible aquí ) a su directorio de Código Base y nómbrelo AxisCamControl.ocx.
- Crear una página web que contenga el código html del ejemplo. Cambie la URL Base, archivo y archivo OCX.
Sintaxis CGI y parámetros en la página HTML
Sintaxis:
http://<servidor_web>/<directorio_cgi>/liveimg.dll?[push?]path=<ruta_imagen> [&<parámetro>=<valor>...] (todo en una línea)
Note: El comando CGI push puede ser omitido debido a que push es el comando principal del que se encarga LiveImg.dll. Los nombres de parámetros pueden ser omitidos si estos se escriben en el orden correcto.
Parámetros y Descripción:
path : La ruta de la imagen (ejem. /live/image.jpg).
fps | fpm : Cuadros por segundo o Cuadros por minuto.
duration : Por cuantos segundos las imágenes deben ser enviadas al cliente.
timeout : La alimentación de imágenes se detiene después de los segundos de "timeout" si la imagen almacenada no ha sido actualizada.
Ejemplos:
Enviar 3 imágenes/segundo durante 60 segundos. Detenerse después de 30 segundos si la imagen no ha sido actualizada (parámetros con valores por defecto):
http://<servidor_web>/cgi-bin/liveimg.dll?path=/live/image.jpg
Enviar 10 imágenes/segundo durante 3 minutos. Usar timeout por defecto:
http://<servidor_web>/cgi-bin/liveimg.dll?path=/live/image.jpg &fps=10&duration=180 (todo en una línea)
Enviar 1 imagen cada 10 segundos durante 1 hora. Timeout 60 segundos:
http://<servidor_web>/cgi-bin/liveimg.dll?path=/live/image.jpg &fpm=6&duration=3600&timeout=60 (todo en una línea)
Ejemplo:
<html>
<head>
<title>MJPG Live Demo</title>
</head>
<body>
<center>
<h2>Motion JPEG image on a MS IIS web server via an intermediate FTP server</h2>
<!-- Cut from here to the end of image display comment -->
<!-- Note: If you do not see a JavaScript below in the view source window you must -->
<!-- first save the html file from your browser, then open the saved -->
<!-- file in a text editor, for instance Notepad.-->
<SCRIPT LANGUAGE="JavaScript">
// Set the BaseURL to the url of your Web server
// Example: var BaseURL = "http://www.axis.com/";
var BaseURL = "http://[WebServer]/";
// DisplayWidth & DisplayHeight specifies the displayed width & height of the image.
// The values depend on what Network Camera and resolution are used.
// Select the Network Camera and resolution by removing the "//" at the beginning
// of the applicable line.
// Note that only one can be enabled.
// AXIS 2100
// var DisplayWidth = "320";var DisplayHeight = "240";// Resolution 320x240:
// var DisplayWidth = "640";var DisplayHeight = "480";// Resolution 640x480:
// AXIS 2120/2400/2401/2420 PAL
// var DisplayWidth = "352";var DisplayHeight = "288";// Resolution 352x288:
// var DisplayWidth = "704";var DisplayHeight = "576";// Resolution 704x576:
// AXIS 2120/2400/2401/2420 NTSC
// var DisplayWidth = "352";var DisplayHeight = "240";// Resolution 352x240:
// var DisplayWidth = "704";var DisplayHeight = "480";// Resolution 704x480:
// This is the filepath to the LiveImg ISA, updated image and the CGI parameters
// Example: var File = "cgi-bin/liveimg.dll?path=/live/image.jpg&fps=1&duration=360&timeout=60";
var File = "[path]/liveimg.dll?path=/[path/image.jpg]&fps=x&duration=y&timeout=z";
// This is the filepath to the ActiveX ocx needed by Internet Explorer
// note the version number that is needed.
// Example: var OcxFile = "activex/AxisCamControl.ocx#Version=1,0,1,42";
var OcxFile = "[path]/AxisCamControl.ocx#Version=1,0,1,42";
// No changes required below this point
var output = "";
if ((navigator.appName == "Microsoft Internet Explorer")&&(navigator.platform != "MacPPC")&&(navigator.platform != "Mac68k"))
{
// If Internet Explorer for Windows then use ActiveX
output = "<OBJECT ID=\"CamImage\" WIDTH="
output += DisplayWidth;
output += " HEIGHT=";
output += DisplayHeight;
output += " CLASSID=CLSID:917623D1-D8E5-11D2-BE8B-00104B06BDE3 ";
output += "CODEBASE=\"";
output += BaseURL;
output += OcxFile;
output += "\">";
output += "<PARAM NAME=\"URL\" VALUE=\"";
output += BaseURL;
output += File;
output += "\"> <BR><B>Axis ActiveX Camera Control</B><BR>";
output += "The AXIS ActiveX Camera Control, which enables you ";
output += "to view live image streams in Microsoft Internet";
output += " Explorer, could not be registered on your computer.";
output += "<BR></OBJECT>";
}
else
{
// If not IE for Windows use the browser itself to display
output = "<IMG SRC=\"";
output += BaseURL;
output += File;
output += " ? dummy=garb\" HEIGHT=\"";
// The above dummy cgi-parameter helps some versions of NS
output += DisplayHeight;
output += "\" WIDTH=\"";
output += DisplayWidth;
output += "\" ALT=\"Moving Image Stream\">";
}
document.write(output);
</script>
<!-- End of image display part -->
</body>
</html> |
|