Ankündigung

Einklappen
Keine Ankündigung bisher.

Webcam Integration ONFIV

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Webcam Integration ONFIV

    Hallo zusammen,

    ich selbst nutze momentan in meinem Heimnetz mehrere Netzwerkkameras und würde diese gerne in die Visu mit integrieren. Zum Beispiel an der Türe, auf der Terasse, usw.
    Bislang gab es mehrere Threads, die eine solche Integration auf die ein oder andere Weise beschrieben haben. Keiner davon hat aber eine saubere, zufriedenstellende Lösung präsentiert. Deshalb habe ich mir gedacht, wir sollten vielleicht ein Widget entwickeln, das mit dem ONFIV Standard klar kommt. Fakt ist, dass 90% der Netzwerkkameras, sei es die billige China Cam oder eine teure Überwachungskamera von namhaften Firmen (> 200€) mit dem international gültigen und genormten Standard ONFIV funktionieren.

    Somit würden wir doch einen Großteil der Kameras abdecken und integrieren können, wenn wir den Standard implementieren.
    Zum Beispiel diese Kamera http://www.amazon.de/gp/product/B00M...productDetails für knapp 90€ ist wetterfest und 720p mit I/R und bildet diesen Standard ab.

    Hat jemand schon Erfahrungen gemacht mit dem ONFIV Standard und kann hier vielleicht etwas KnowHow beisteuern? Wie könnte die Entwicklung eines solchen Widgets aussehen?

    Das lasse ich hier einfach mal als offene Fragen stehen.

    Grüße Patrick

    #2
    Dabei könnte man sich wohl denken entweder ein JavaScript Plugin zu implementieren: https://github.com/agsh/onvif oder das ganze per php zu versuchen https://github.com/ltoscano/ponvif oder eben ein generisches VLC Player Plugin, dass den rtsp Stream abspielt: http://stackoverflow.com/questions/3...-html-web-page

    Was wird wohl das einfachste sein?

    Kommentar


      #3
      Es scheint als wäre der vlc-plugin Ansatz am einfachsten. Ich bekomme das aber irgendwie nicht sauber embedded

      Code:
      <html>
      <head>
      </head>
      <body>
      
      <embed id="streamip"
      type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2"
      src="rtsp://ip:544//11"
      toolbar="true"
      autoplay="yes" loop="yes"
      name="Teststream" />
      
      </body>
      </html>
      Nicht wundern. Meine Testkamera Wansview NCM630W wird so aufgerufen wie unter src steht. Habe nur die IP rausgenommen.

      Doch leider sehe ich nur das VLC Symbol, dann macht er gemäß autoplay auch play und dann wieder stop. Warum er stoppt weiß ich nicht.

      Jemand ne Idee?

      Kommentar


        #4
        Die Lösung ist relativ einfach habe ich gemerkt. Man benötigt nur die richtige Kamera. Bei der Foscam FI9853EP z.B. lässt sich einer der beiden Streams auf MJPEG umstellen, dann kann man das nahtlos in die Visualisierung einbinden.

        Kommentar


          #5
          Ich habe für meine drehbare Trendnet Indoor-Kamera gestern noch ne kleine Steuerung in die SmartVISU gebaut. Weil es Probleme gab das Ganze direkt via AJAX gegen die Kamera zu schicken mit Zwischenweg über eigene REST-Services. Vielleicht helfen die Codeschnippsel ja jemandem - fand es passend zu dem Topic. Der ptdc-Befehlssatz scheint ja auch herstellerübergreifend zu sein. Lediglich der Passwortschutz der Cam wollte noch nicht, dachte das ist ne BasicAuth, aber irgendwie bin ich nicht durchgekommen.

          Nachtrag: ich sehe gerade das gepostete Framework kann das auch alles ganz toll out of the box.. Gleich mal reinschauen.

          Code:
            <script language="JavaScript" type="text/javascript">
                  $(document).ready(function() {
                      $("#left").click(function(event){            
                          $.ajax( {
                            url:'http://<ServerIP>/WebServices/Camera/moveLeft',
                            success:function(data) {
                              
                            }
                         });            
                      });
              
                      $("#right").click(function(event){            
                          $.ajax( {
                            url:'http://<ServerIP>/WebServices/Camera/moveRight',
                            success:function(data) {
                              
                            }
                         });
                     });
                    
                     $("#up").click(function(event){            
                          $.ajax( {
                            url:'http://<ServerIP>/WebServices/Camera/moveUp',
                            success:function(data) {
                              
                            }
                         });
                     });
                    
                     $("#down").click(function(event){            
                          $.ajax( {
                            url:'http://<ServerIP>/WebServices/Camera/moveDown',
                            success:function(data) {
                            }
                         });
                     });
                   });
                  </script>
          Service-Code
          Code:
          case "moveRight":
                          $return = $this->makeCameraCall('http://<CameraIP>/cgi/ptdc.cgi?command=set_relative_pos&posX=10&posY=0');
                          break;
          case "moveLeft":
                          $return = $this->makeCameraCall('http://<CameraIP>/cgi/ptdc.cgi?command=set_relative_pos&posX=-10&posY=0');
                          break;
          case "moveUp":
                          $return = $this->makeCameraCall('http://<CameraIP>/cgi/ptdc.cgi?command=set_relative_pos&posX=0&posY=10');
                          break;
          case "moveDown":
                          $return = $this->makeCameraCall('http://<CameraIP>/cgi/ptdc.cgi?command=set_relative_pos&posX=-0&posY=-10');
                          break;
          
          public function makeCameraCall($requestURL) {
                  $curl = curl_init($requestURL);    
                  $curl_response = curl_exec($curl);
                  if ($curl_response === false) {
                      $info = curl_getinfo($curl);
                      print_r($info);
                      curl_close($curl);            
                  }
                  curl_close($curl);
              }
          Zuletzt geändert von psilo; 15.11.2015, 13:52.

          Kommentar

          Lädt...
          X