IPSCam

Ich kann nur sagen, dass es das „Feature“ doch in vielen Applikationen für Kameras gibt.
Software: iSpy zum Beispiel
Oder alternativ (mein FAvorit) passende NAS Festplatte kaufen von QNAP oder Synology.
Da ist eine Lizenz (eine CAM) für die Surveillance Station dabei. D.h. die Software läuft auf der NAS.
Das einzigste worüber man sich vorher Gedanken machen sollte, ist wieviele Kameras da mal laufen sollen.
Um so mehr Kameras man einbinden möchte, um so eher macht es von vornherein Sinn sich eine große 4bay NAS zu kaufen. in den 4Bay NAS sind die CPUs in aller Regel potenter als in den kleinen 2Bay NAS Systemen.

Die Software unterstützt diverse Kameras mit allem möglichen.
Einschränkung: Motorbetriebene / Schwenkbare Kameras werden häufig nicht unterstützt (sobald es sich um China Cams handelt)…

Zum Thema welche Kamera?
Hierzu gibts viele Beiträge im Forum.
Kurzversion: Budgetabhängig.
Wenn Budget „egal“ dann Marken-Cams wie Mobotix,Axis,usw.
Wenn low-Budget:
China Cams wie:

  • Foscam / Instar (baugleich)
  • HikVision / Trendnet (Baugleich)
  • Vivotek

Hier ein paar Beiträge dazu:
http://www.ip-symcon.de/forum/threads/27218-Kamera-Stream-aus-quot-Synology-Surveillance-Station-quot-in-WebFront-einbinden?highlight=kamera

http://www.ip-symcon.de/forum/threads/27157-Welche-Webcam-Netzwerkkamera?highlight=kamera

Hab mir jetzt eine Foscam 9831w zugelegt,

Ich bekomme aber kein Livestream und kein Standbild, Livestream bekomme ich nur mit dem VLC-Player.

Hat es jemand mit der Kamera schon hinbekommen ???

Ich hatte mal mit einer 9826W auch so Probleme. Irgendwann hab ich dann einen Firmwarestand bei Foscam
gefunden, mit dem es funktionierte.

Vielleicht setzt du da erstmal an.

Ansonsten ist allerdings in der BA alles sehr detailliert beschrieben bei denen.

das mit der Firmware kann ich noch probieren, alles was in de BA steht funktioniert nicht außer dem Zugang über Rstp://

Ich meine man musste den mpg Stream zuerst frei schalten.

http://XXX.XXX.XXX.XXX/cgi-bin/CGIProxy.fcgi?cmd=setSubStreamFormat&format=1&usr=ABC&pwd=DEF

das hat so weit funktioniert, habe jetzt noch den bonvif port genommen, dann kommt eine Reaktion,
aber kein Bild:

<SOAP-ENV:Fault xmlns:SOAP-ENV=„http://www.w3.org/2003/05/soap-envelope“ xmlns:SOAP-ENC=„http://www.w3.org/2003/05/soap-encoding“ xmlns:xsi=„http://www.w3.org/2001/XMLSchema-instance“ xmlns:xsd=„XML Schema“ xmlns:wsa=„http://schemas.xmlsoap.org/ws/2004/08/addressing“ xmlns:wsdd=„http://schemas.xmlsoap.org/ws/2005/04/discovery“ xmlns:chan=„http://schemas.microsoft.com/ws/2005/02/duplex“ xmlns:wsa5=„http://www.w3.org/2005/08/addressing“ xmlns:c14n=„http://www.w3.org/2001/10/xml-exc-c14n#“ xmlns:wsu=„http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd“ xmlns:xenc=„http://www.w3.org/2001/04/xmlenc#“ xmlns:wsc=„http://schemas.xmlsoap.org/ws/2005/02/sc“ xmlns:ds=„http://www.w3.org/2000/09/xmldsig#“ xmlns:wsse=„http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd“ xmlns:xmime=„http://tempuri.org/xmime.xsd“ xmlns:xop=„http://www.w3.org/2004/08/xop/include“ xmlns:tt=„http://www.onvif.org/ver10/schema“ xmlns:wsnt=„http://docs.oasis-open.org/wsn/b-2“ xmlns:wsrfbf=„http://docs.oasis-open.org/wsrf/bf-2“ xmlns:wstop=„http://docs.oasis-open.org/wsn/t-1“ xmlns:tdn=„http://www.onvif.org/ver10/network/wsdl“ xmlns:tds=„http://www.onvif.org/ver10/device/wsdl“ xmlns:tptz=„http://www.onvif.org/ver20/ptz/wsdl“ xmlns:trt=„http://www.onvif.org/ver10/media/wsdl“>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>HTTP GET method not implemented</faultstring>
</SOAP-ENV:Fault>

Einstellen des Substreams für MJPEG (Result = 0):
__http://192.168.11.11/cgi-bin/CGIProxy.fcgi?usr=BENUTZER&pwd=PASSWORT&cmd=setSubStreamFormat&format=1

Webcam Stream in MJPEG für IPS:
__http://192.168.11.11/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=BENUTZER&pwd=PASSWORT

…hast du etwas anderes als Port 80, dann noch ändern auf > http://IP:PORT…

Grüße,
Chris

@ Chris, Danke
bekomme result=3
Befehl lautet: __http://192.168.XXX.XXX:88/cgi-bin/CGIProxy.fcgi?cmd=setSubVideoStreamType&format=1&usr=XXXX&pwd=XXX

aber irgendwie will es trotzdem nicht, weder Firefox, Safari oder Chrome.

Standbild geht

Hallo Andreas,
könntest du bitte in IPSCam_Manager.class.php in der StorePicture() bei der Fehlerausgabe den Benutzernamen und das Passwort filtern?

Beispielsweise:

IPSLogger_Dbg (__file__, 'File '.str_replace(parse_url($urlPicture, PHP_URL_USER).":".parse_url($urlPicture, PHP_URL_PASS)."@", "",$urlPicture).' could NOT be found on the Server !!!');

oder

IPSLogger_Dbg (__file__, 'File '.str_replace(":".parse_url($urlPicture, PHP_URL_PASS)."@", ":*****@", $urlPicture).' could NOT be found on the Server !!!');

Es ist ärgerlich, wenn man jemandem sein IP-Symcon demonstrieren will und dann der User und das Passwort im Klartext angezeigt werden… :eek:

Hallo Brownson,

habe mich gerade mit meinem Raspbery Kamera Modul gespielt das ich schon ewig herum liegen hatte und mit einer externen USB Webcam auf dem Raspberry und auf dem Raspberry entsprechend den mjpg_streamer installiert.
Anleitung kann ich gerne zur Verfügung stellen bzgl. Einrichten und wie der mjpg_streamer gestartet wird dann auf dem Raspberry.

Ich habe mir Testweise eine IPSComponentCam_Mjpgstreamer.class.php angelegt und es funktioniert. Kann diese offiziell aufgenommen werden in das IPSCam Modul?


<?
	/*
	 * This file is part of the IPSLibrary.
	 *
	 * The IPSLibrary is free software: you can redistribute it and/or modify
	 * it under the terms of the GNU General Public License as published
	 * by the Free Software Foundation, either version 3 of the License, or
	 * (at your option) any later version.
	 *
	 * The IPSLibrary is distributed in the hope that it will be useful,
	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	 * GNU General Public License for more details.
	 *
	 * You should have received a copy of the GNU General Public License
	 * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
	 */

	 /**@addtogroup ipscomponent
	 * @{
	 *
	 * @file          IPSComponentCam_Mjpgstreamer.class.php
	 * @author        Andreas Brauneis
	 *
	 */

	/**
    * @class IPSComponentCam_Mjpgstreamer
    *
    * Definiert ein IPSComponentCam Object, das die Funktionen einer Cam Componente für einen
    * Raspberry (Software mjpg_streamer) implementiert
    *
    * @author Andreas Brauneis
    * @version
    *   Version 2.50.1, 26.08.2012<br/>
    */

	IPSUtils_Include ('IPSComponentCam.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentCam');

	class IPSComponentCam_Mjpgstreamer extends IPSComponentCam {

		private $ipAddress;
		private $username;
		private $password;
		private $port;

		/**
		 * @public
		 *
		 * Initialisierung eines IPSComponentCam_Test Objektes
		 *
		 * @param string $ipAddress IP Adresse der Kamera
		 * @param string $username Username für Kamera Zugriff
		 * @param string $password Passwort für Kamera Zugriff
		 * @param string $port Port für Kamera Zugriff
		 */
		public function __construct($ipAddress, $username, $password, $port) {
			$this->ipAddress  = $ipAddress;
			$this->username   = $username;
			$this->password   = $password;
			$this->port       = $port;
		}

			/**
		 * @public
		 *
		 * Funktion liefert String IPSComponent Constructor String.
		 * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams
		 * wieder neu zu erzeugen.
		 *
		 * @return string Parameter String des IPSComponent Object
		 */
		public function GetComponentParams() {
			return get_class($this).','.$this->instanceId;
		}

		/**
		 * @public
		 *
		 * Function um Events zu behandeln, diese Funktion wird vom IPSMessageHandler aufgerufen, um ein aufgetretenes Event
		 * an das entsprechende Module zu leiten.
		 *
		 * @param integer $variable ID der auslösenden Variable
		 * @param string $value Wert der Variable
		 * @param IPSModuleCam $module Module Object an das das aufgetretene Event weitergeleitet werden soll
		 */
		public function HandleEvent($variable, $value, IPSModuleCam $module) {
			$name = IPS_GetName($variable);
			throw new IPSComponentException('Event Handling NOT supported for Variable '.$variable.'('.$name.')');
		}

		/**
		 * @public
		 *
		 * Liefert URL des Kamera Live Streams
		 *
		 * @param integer $size Größe des Streams, mögliche Werte:
		 *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE
		 * @return string URL des Streams
		 */
		public function Get_URLLiveStream($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
			$url = 'http://'.$this->username.':'.$this->password.'@'.$this->ipAddress.':'.$this->port.'/?action=stream';
			switch ($size) {
				case  IPSCOMPONENTCAM_SIZE_SMALL:
					$url .= ''; // Not supported
					break;
				case  IPSCOMPONENTCAM_SIZE_MIDDLE:
					$url .= ''; // Not supported
					break;
				case  IPSCOMPONENTCAM_SIZE_LARGE:
					$url .= ''; // Not supported
					break;
				default:
					trigger_error('Unknown Size '.$size);
			}
			return $url;
		}

		/**
		 * @public
		 *
		 * Liefert URL des Kamera Bildes
		 *
		 * @param integer $size Größe des Bildes, mögliche Werte:
		 *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE
		 * @return string URL des Bildes
		 */
		public function Get_URLPicture($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
			$url = 'http://'.$this->username.':'.$this->password.'@'.$this->ipAddress.':'.$this->port.'/?action=snapshot';
			switch ($size) {
				case  IPSCOMPONENTCAM_SIZE_SMALL:
					$url .= ''; // Not supported
					break;
				case  IPSCOMPONENTCAM_SIZE_MIDDLE:
					$url .= ''; // Not supported
					break;
				case  IPSCOMPONENTCAM_SIZE_LARGE:
					$url .= ''; // Not supported
					break;
				default:
					trigger_error('Unknown Size '.$size);
			}
			return $url;
		}

		/**
		 * @public
		 *
		 * Bewegen der Kamera
		 *
		 * @param integer $urlType Type der URL die geliefert werden soll.
		 *                         mögliche Werte: IPSCOMPONENTCAM_URL_MOVEHOME
		                                           IPSCOMPONENTCAM_URL_MOVELEFT
		                                           IPSCOMPONENTCAM_URL_MOVERIGHT
		                                           IPSCOMPONENTCAM_URL_MOVEUP
		                                           IPSCOMPONENTCAM_URL_MOVEDOWN
		                                           IPSCOMPONENTCAM_URL_PREDEFPOS1
		                                           IPSCOMPONENTCAM_URL_PREDEFPOS2
		                                           IPSCOMPONENTCAM_URL_PREDEFPOS3
		                                           IPSCOMPONENTCAM_URL_PREDEFPOS4
		                                           IPSCOMPONENTCAM_URL_PREDEFPOS5
		 */
		public function Get_URL($urlType) {
			$url = '';
			switch ($urlType) {
					case IPSCOMPONENTCAM_URL_MOVELEFT:
					case IPSCOMPONENTCAM_URL_MOVERIGHT:
					case IPSCOMPONENTCAM_URL_MOVEUP:
					case IPSCOMPONENTCAM_URL_MOVEDOWN:
					case IPSCOMPONENTCAM_URL_MOVEHOME:
					case IPSCOMPONENTCAM_URL_PREDEFPOS1:
					case IPSCOMPONENTCAM_URL_PREDEFPOS2:
					case IPSCOMPONENTCAM_URL_PREDEFPOS3:
					case IPSCOMPONENTCAM_URL_PREDEFPOS4:
					case IPSCOMPONENTCAM_URL_PREDEFPOS5:
						$url = $url.''; // Not supported
						break;
				default:
					trigger_error('Diese Funktion ist für eine Abus Kamera noch NICHT implementiert !!!');
			}
			return $url;
		}

		/**
		 * @public
		 *
		 * Liefert Breite des Kamera Bildes
		 *
		 * @param integer $size Größe des Bildes, mögliche Werte:
		 *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE
		 * @return integer Breite des Bildes in Pixel
		 */
		public function Get_Width($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
			switch ($size) {
				case  IPSCOMPONENTCAM_SIZE_SMALL:
					$return = 320;
					break;
				case  IPSCOMPONENTCAM_SIZE_MIDDLE:
					$return = 640;
					break;
				case  IPSCOMPONENTCAM_SIZE_LARGE:
					$return = 1024;
					break;
				default:
					trigger_error('Unknown Size '.$size);
			}
			return $return;
		}

		/**
		 * @public
		 *
		 * Liefert Höhe des Kamera Bildes
		 *
		 * @param integer $size Größe des Bildes, mögliche Werte:
		 *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE
		 * @return integer Höhe des Bildes in Pixel
		 */
		public function Get_Height($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
			switch ($size) {
				case  IPSCOMPONENTCAM_SIZE_SMALL:
					$return = 240;
					break;
				case  IPSCOMPONENTCAM_SIZE_MIDDLE:
					$return = 480;
					break;
				case  IPSCOMPONENTCAM_SIZE_LARGE:
					$return = 768;
					break;
				default:
					trigger_error('Unknown Size '.$size);
			}
			return $return;
		}
	}

	/** @}*/
?>

@Thiemo

habe die neue Anbindung hinzugefügt

@Brovning

Deine Änderung kommt etwas später, hab IPSCam gerade unter Bearbeitung …

Klasse. Danke Dir. Hier die Anleitung für den Raspberry bzgl. Raspi-Camera Modul und bzgl. USB-Webcam am Raspberry.

a.) Folgende Befehle nach der Reihe durchführen (kann sein dass ich etwas zu viel jetzt drinnen habe, aber ich hatte am Anfang ein wenig herum probiert)

sudo apt-get update
raspi-config

Den 5. Eintrag „Interfacing Options“ und dann P1 „Enable Camera“ auswählen und dann „Enable“
Weiter gehts so


sudo apt-get install libjpeg8-dev imagemagick libv4l-dev subversion subversion-tools git fswebcam cmake
sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer
cd mjpg-streamer-experimental

b.) Folgenden Code ausführen:

make USE_LIBV4L2=true clean all
make install
cp input_raspicam.so /usr/local/lib/input_raspicam.so
cp input_file.so /usr/local/lib/input_file.so
cp output_http.so /usr/local/lib/output_http.so

c.) Neue Datei anlegen:

vi /etc/init.d/mjpg_streamer.sh

Folgenden Inhalt einfügen und entsprechend für Euch anpassen auch mit user:password entsprechend ersetzen (Erklärung weiter unten) und wieder mit Taste Esc und dann Taste Shift gedrückt halten und 2x Taste z hintereinander das ganze abspeichern

#!/bin/sh
# /etc/init.d/mjpg_streamer.sh
# v0.2 phillips321.co.uk
### BEGIN INIT INFO
# Provides:          mjpg_streamer.sh
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: mjpg_streamer for webcam
# Description:       Streams /dev/video0 to http://IP/?action=stream
### END INIT INFO

f_message(){
        echo "[+] $1"
}

# Carry out specific functions when asked to by the system
case "$1" in
        start)
                f_message "Starting mjpg_streamer"
                /usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_raspicam.so -ex auto -x 1280 -y 720 -fps 15" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8200 -c user:password" 2>&1 &
                sleep 2
                /usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -y -n -r 320x240 -f 5" -o "/usr/local/lib/output_http.so  -n -w /usr/local/www -p 8300 -c user:password" 2>&1 &
                sleep 2
                f_message "mjpg_streamer started"
                ;;
        stop)
                f_message "Stopping mjpg_streamer..."
                killall mjpg_streamer
                f_message "mjpg_streamer stopped"
                ;;
        restart)
                f_message "Restarting daemon: mjpg_streamer"
                killall mjpg_streamer
                sleep 2
                /usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_raspicam.so -ex auto -x 1280 -y 720 -fps 15" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8200 -c user:password" 2>&1 &
                sleep 2
                /usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -y -n -r 320x240 -f 5" -o "/usr/local/lib/output_http.so  -n -w /usr/local/www -p 8300 -c user:password" 2>&1 &
                sleep 2
                f_message "Restarted daemon: mjpg_streamer"
                ;;
        status)
                pid=`ps -A | grep mjpg_streamer | grep -v "grep" | grep -v mjpg_streamer. | awk '{print $1}' | head -n 1`
                if [ -n "$pid" ];
                then
                        f_message "mjpg_streamer is running with pid ${pid}"
                        f_message "mjpg_streamer was started with the following command line"
                        cat /proc/${pid}/cmdline ; echo ""
                else
                        f_message "Could not find mjpg_streamer running"
                fi
                ;;
        *)
                f_message "Usage: $0 {start|stop|status|restart}"
                exit 1
                ;;
esac
exit 0

Erklärung bzgl. Befehle

Folgende Zeile spricht die raspicam an mit einer Auflösung von 1280x960 und 15fps pro Sekunde. Am Raspberry ist dann der Stream usw… am Port 8200 erreichbar und mit dem Benutzer user und dem Passwort password . Die Raspicam ist wirklich performant.

/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_raspicam.so -ex night -x 1280 -y 960 -fps 15" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8200 -c user:password" 2>&1 &

Folgende Zeile spricht eine USB-Webcam an die nur YUYV kann mit einer Auflösung von 320x240 und 5fps pro Sekunde. Am Raspberry ist dann der Stream usw… am Port 8300 erreichbar und mit dem Benutzer user und dem Passwort password . Das ist nicht wirklich performant mit dieser geringen Auflösung und Framrate ca. 70% CPU Auslastung (1 von den 4 Cores; also 400% verfügbar am Raspberry 2). Mit einer Auflösung von 640x480 kann es schon 110% sein von den 400%. Man merkt das dann auch an erhöhter Temperatur des Raspberry Pi 2.

/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -y -n -r 320x240 -f 5" -o "/usr/local/lib/output_http.so  -n -w /usr/local/www -p 8300 -c user:password" 2>&1 &

Folgende Zeile spricht eine USB-Webcam an die MJPG direkt kann mit einer Auflösung von 640x480 und 15 frames pro Sekunde. Am Raspberry ist dann der Stream usw… am Porta 8400 erreichbar und mit dem Benutzer user und dem Passwort password . Bzgl. Performance kann ich keine Aussage treffen da ich keine geeignete USB Webcam habe.

/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -fr 15 -r 640x480″ -o “/usr/local/lib/output_http.so -p 8400 -w /usr/local/www -n -c user:password" 2>&1 &

d.) Ausführbar machen des Scriptes

chmod +x /etc/init.d/mjpg_streamer.sh

und bei Bedarf ein Autostart beim Bootvorgang des Raspberry

update-rc.d mjpg_streamer.sh defaults
reboot

e.) Manueller Restart oder genereller Start:

/etc/init.d/mjpg_streamer.sh restart

Aufruf im Webbrowser:
http://user:password@rapsberryip:8200 bzw. hinten mit :8300 je nach Konfiguration

f.) Noch ein Hinweis um Herauszufinden ob die USB-Webcam mit YUYV Modus fährt. Erster Befehl ob die WebCam überhaupt erkannt wird.

lsusb
fswebcam --verbose

Wenn steht:
src_v4l2_set_pix_format,541: Device offers the following V4L2 pixel formats:
src_v4l2_set_pix_format,554: 0: [0x56595559] ‚YUYV‘ (YUYV)
Dann ist oben der YUYV Eintrag zu wählen

Wenn allerdings auch folgendes angezeigt wird mit MJPG
src_v4l2_set_pix_format,541: Device offers the following V4L2 pixel formats:
src_v4l2_set_pix_format,554: 0: [0×56595559] ‘YUYV’ (YUV 4:2:2 (YUYV))
src_v4l2_set_pix_format,554: 1: [0x47504A4D] ‘MJPG’ (MJPEG)
Using palette MJPEG
Dann ist oben der MJPEG Eintrag zu wählen

g.) IP-Symcon Einstellung im IPSCam Modul:
In der IP-Symcon Console ist dann unter dem Eintrag „IP-Symcon“ → „Program“ → „IPSLibrary“ → „config“ → „modules“ → „IPSCam“ → „IPSCam_Configuration“ Script entsprechend folgendes einzurichten in dem Bereich der Function „IPSCam_GetConfiguration“ wobei unten 10.0.0.88 die IP Adresse des Raspberry ist.


	function IPSCam_GetConfiguration() {
		return array(
			0    => array(IPSCAM_PROPERTY_NAME        => 'RaspiCam',
			              IPSCAM_PROPERTY_TYPE        => IPSCAM_TYPE_FIXEDCAM,
			              IPSCAM_PROPERTY_COMPONENT   => 'IPSComponentCam_Mjpgstreamer,10.0.0.88,user,password,8200',
			              ),
			1    => array(IPSCAM_PROPERTY_NAME        => 'YUYV_Webcam',
			              IPSCAM_PROPERTY_TYPE        => IPSCAM_TYPE_FIXEDCAM,
			              IPSCAM_PROPERTY_COMPONENT   => 'IPSComponentCam_Mjpgstreamer,10.0.0.88,user,password,8300',
			              ),
			1    => array(IPSCAM_PROPERTY_NAME        => 'MJPG_Webcam',
			              IPSCAM_PROPERTY_TYPE        => IPSCAM_TYPE_FIXEDCAM,
			              IPSCAM_PROPERTY_COMPONENT   => 'IPSComponentCam_Mjpgstreamer,10.0.0.88,user,password,8400',
			              ),
		);
	}

LG
Thiemo

Anbei das funktionierende Skript für die DLink 2310

<?
	/*
	 * This file is part of the IPSLibrary.
	 *
	 * The IPSLibrary is free software: you can redistribute it and/or modify
	 * it under the terms of the GNU General Public License as published
	 * by the Free Software Foundation, either version 3 of the License, or
	 * (at your option) any later version.
	 *
	 * The IPSLibrary is distributed in the hope that it will be useful,
	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	 * GNU General Public License for more details.
	 *
	 * You should have received a copy of the GNU General Public License
	 * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
	 */    

	 /**@addtogroup ipscomponent
	 * @{
	 *
	 * @file          IPSComponentCam_DLink2310.class.php
	 * @author        Andreas Brauneis
	 *
	 */

	/**
    * @class IPSComponentCam_DLink2310
    *
    * Definiert ein IPSComponentCam Object, das die Funktionen einer Cam Componente für eine 
    * DLink2310 Kamera implementiert
    *
    * @author Andreas Brauneis
    * @version
    *   Version 2.50.1, 24.05.2013<br/>
    */

	IPSUtils_Include ('IPSComponentCam.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentCam');

	class IPSComponentCam_DLink932 extends IPSComponentCam {

		private $ipAddress;
		private $username;
		private $password;

		/**
		 * @public
		 *
		 * Initialisierung eines IPSComponentCam_DLink2310 Objektes
		 *
		 * @param string $ipAddress IP Adresse der Kamera
		 * @param string $username Username für Kamera Zugriff
		 * @param string $password Passwort für Kamera Zugriff
		 */
		public function __construct($ipAddress, $username, $password) {
			$this->ipAddress  = $ipAddress;
			$this->username   = $username;
			$this->password   = $password;
		}

			/**
		 * @public
		 *
		 * Funktion liefert String IPSComponent Constructor String.
		 * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams
		 * wieder neu zu erzeugen.
		 *
		 * @return string Parameter String des IPSComponent Object
		 */
		public function GetComponentParams() {
			return get_class($this).','.$this->instanceId;
		}
		
		/**
		 * @public
		 *
		 * Function um Events zu behandeln, diese Funktion wird vom IPSMessageHandler aufgerufen, um ein aufgetretenes Event 
		 * an das entsprechende Module zu leiten.
		 *
		 * @param integer $variable ID der auslösenden Variable
		 * @param string $value Wert der Variable
		 * @param IPSModuleCam $module Module Object an das das aufgetretene Event weitergeleitet werden soll
		 */
		public function HandleEvent($variable, $value, IPSModuleCam $module) {
			$name = IPS_GetName($variable);
			throw new IPSComponentException('Event Handling NOT supported for Variable '.$variable.'('.$name.')');
		}

		/**
		 * @public
		 *
		 * Liefert URL des Kamera Live Streams 
		 *
		 * @param integer $size Größe des Streams, mögliche Werte:
		 *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE
		 * @return string URL des Streams
		 */
		public function Get_URLLiveStream($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
			//$url = 'http://'.$this->ipAddress.'/MJPEG.cgi?user='.$this->username.'&password='.$this->password;

			$url = 'http://'.$this->username.':'.$this->password.'@'.$this->ipAddress.'/video/mjpg.cgi?profileid=1';
			switch ($size) {
				case  IPSCOMPONENTCAM_SIZE_SMALL:
					$url .= ''; // Not supported
					break;
				case  IPSCOMPONENTCAM_SIZE_MIDDLE:
					$url .= ''; // Not supported
					break;
				case  IPSCOMPONENTCAM_SIZE_LARGE:
					$url .= ''; // Not supported
					break;
				default:
					trigger_error('Unknown Size '.$size);
			}
			return $url;
		}

		/**
		 * @public
		 *
		 * Liefert URL des Kamera Bildes 
		 *
		 * @param integer $size Größe des Bildes, mögliche Werte:
		 *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE 
		 * @return string URL des Bildes
		 */
		public function Get_URLPicture($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
			$url = 'http://'.$this->username.':'.$this->password.'@'.$this->ipAddress.'/image/jpeg.cgi';
			switch ($size) {
				case  IPSCOMPONENTCAM_SIZE_SMALL:
					$url .= ''; // Not supported
					break;
				case  IPSCOMPONENTCAM_SIZE_MIDDLE:
					$url .= ''; // Not supported
					break;
				case  IPSCOMPONENTCAM_SIZE_LARGE:
					$url .= ''; // Not supported
					break;
				default:
					trigger_error('Unknown Size '.$size);
			}
			return $url;
		}

		/**
		 * @public
		 *
		 * Bewegen der Kamera
		 *
		 * @param integer $urlType Type der URL die geliefert werden soll.
		 *                         mögliche Werte: IPSCOMPONENTCAM_URL_MOVEHOME
		                                           IPSCOMPONENTCAM_URL_MOVELEFT
		                                           IPSCOMPONENTCAM_URL_MOVERIGHT
		                                           IPSCOMPONENTCAM_URL_MOVEUP
		                                           IPSCOMPONENTCAM_URL_MOVEDOWN
		                                           IPSCOMPONENTCAM_URL_PREDEFPOS1
		                                           IPSCOMPONENTCAM_URL_PREDEFPOS2
		                                           IPSCOMPONENTCAM_URL_PREDEFPOS3
		                                           IPSCOMPONENTCAM_URL_PREDEFPOS4
		                                           IPSCOMPONENTCAM_URL_PREDEFPOS5
		 */
		public function Get_URL($urlType) {
			$url = '';
			switch ($urlType) {
					case IPSCOMPONENTCAM_URL_MOVELEFT:
					case IPSCOMPONENTCAM_URL_MOVERIGHT: 
					case IPSCOMPONENTCAM_URL_MOVEUP:
					case IPSCOMPONENTCAM_URL_MOVEDOWN: 
					case IPSCOMPONENTCAM_URL_MOVEHOME:
					case IPSCOMPONENTCAM_URL_PREDEFPOS1:
					case IPSCOMPONENTCAM_URL_PREDEFPOS2:
					case IPSCOMPONENTCAM_URL_PREDEFPOS3:
					case IPSCOMPONENTCAM_URL_PREDEFPOS4:
					case IPSCOMPONENTCAM_URL_PREDEFPOS5:
						$url = $url.''; // Not supported
						break;
				default:
					trigger_error('Diese Funktion ist für eine DLink932 Kamera noch NICHT implementiert !!!');
			}
			return $url;
		}

		/**
		 * @public
		 *
		 * Liefert Breite des Kamera Bildes 
		 *
		 * @param integer $size Größe des Bildes, mögliche Werte:
		 *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE 
		 * @return integer Breite des Bildes in Pixel
		 */
		public function Get_Width($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
			switch ($size) {
				case  IPSCOMPONENTCAM_SIZE_SMALL:
					$return = 320;
					break;
				case  IPSCOMPONENTCAM_SIZE_MIDDLE:
					$return = 640;
					break;
				case  IPSCOMPONENTCAM_SIZE_LARGE:
					$return = 1024;
					break;
				default:
					trigger_error('Unknown Size '.$size);
			}
			return $return;
		}

		/**
		 * @public
		 *
		 * Liefert Höhe des Kamera Bildes 
		 *
		 * @param integer $size Größe des Bildes, mögliche Werte:
		 *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE 
		 * @return integer Höhe des Bildes in Pixel
		 */
		public function Get_Height($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
			switch ($size) {
				case  IPSCOMPONENTCAM_SIZE_SMALL:
					$return = 240;
					break;
				case  IPSCOMPONENTCAM_SIZE_MIDDLE:
					$return = 480;
					break;
				case  IPSCOMPONENTCAM_SIZE_LARGE:
					$return = 768;
					break;
				default:
					trigger_error('Unknown Size '.$size);
			}
			return $return;
		}
	}

	/** @}*/
?>

Hallo Brownson,

ich habe meine beiden Instar 5907HD nach Anpassung der IPSComponentCam_Instar mit

public function Get_URLLiveStream($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
		
$url = 'http://'.$this->ipAddress.'/cgi-bin/hi3510/mjpegstream.cgi?-chn=11&-usr='.$this->username.'&-pwd='.$this->password;

public function Get_URLPicture($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
			
$url = 'http://'.$this->ipAddress.'/tmpfs/snap.jpg?usr='.$this->username.'&pwd='.$this->password.'&next_url=snapshot.jpg';

erfolgreich implementiert. Super Modul - Kompliment !

Ist es eventuell möglich mehrere Kameras parallel anzuzeigen ?

Gruß

André

Hab die neuen Anbindungen übernommen.

Anzeige mehrerer Kameras sollte möglich sein - einfach die entsprechenden Links im WebFront setzen…

Hallo Gemeinde,

hat Jemand Kamera-Streams in H.264 am Laufen ? Wenn ja, wie binde ich RTSP ein ?
Meine oben genannten Instars können MJPG und H.264. Die Crux ist, das ich nur die MJPG im WF darstellen kann.

Der H.264 Stream selbst ist bei Instar z.B. über

rtsp://user:pwd@192.168.178.190:554/11 -> groß
rtsp://user:pwd@192.168.178.190:554/12 -> mittel
rtsp://user:pwd@192.168.178.190:554/13 -> klein

abgreifbar. Aber selbst da sind IE und Chrome etwas hartleibig :wink:

@Brownson

Danke für den Hinweis mit den Links. Habe mir Testweise einen neuen Tab erstellt mit einer 4er Ansicht. Hier gedoppelt, da ich erst 2 von 4 geplanten Cams online habe:

Gruß André

Hi,

ich habe eine DodoCool Cam, ist wohl auch nur ein Foscam Clone.
Stream hole ich mir so

http://192.168.0.10:99/videostream.cgi?loginuse=admin&loginpas=pw

Habe es probiert so einzubinden, was leider nicht geht.


	function IPSCam_GetConfiguration() {
		return array(
			0    => array(IPSCAM_PROPERTY_NAME        => 'MyCam',
			              IPSCAM_PROPERTY_TYPE        => IPSCAM_TYPE_MOVABLECAM,
			              IPSCAM_PROPERTY_COMPONENT   => 'IPSComponentCam_Foscam,192.168.0.10:99,admin,pw',
			              ),
		);
	}

Wär cool wenn ihr mich in die richtige Richtung schickt…

Schau Dir mal meinen Post #374 zu den Instar an. Die URLs wirst Du anpassen müssen.

Gruß André

Hat noch jemand das Problem, dass IE nur über VLC Plugin geht und genau das für Android Tablett nicht verfügbar ist? Ich switche jetzt je nach abrufenden Browser (Abfrage) zwischen H264 über VLC bei IE und MPEG bei Chrome.

Gruß André

Hallo, ich habe heut die ersten Gehversuche mit der IPS_Library gewagt und versuche gerade meine Maginon IPC-20C in IPSCam einzubinden … mit der Konfiguration für die InStar bekomme ich die den ersten Video Stream und kann Bilder speichern.
Ich bekomme allerdings stetig folgende Fehlermeldung: „Cannot open file C:\IP-Symcon\Cams\0\Picture\Current… Das System kann die angegebene Datei nicht finden.“ … der gefragte Ordner befindet sich auch nicht unter „C:\IP-Symcon\Cams\0\Picture“.
Im Objektbaum „Program\IPSLibrary\data\modules\IPSCam\Cams\0“ ist das Medium „CamPict“ rot markiert …

Kann mich jemand auf die Spur bringen was ich da was falsch gemacht habe?

Gruß, Michael