Bibliothek, die das UDP-Cloud-Protokoll Port 32100 implementiert, das von vielen P2P-Kameras verwendet wird. Eine Beschreibung des Protokolls finden Sie im Wiki
npm install --save lib32100
Benötigen Sie die Bibliothek
const lib32100 = require ( 'lib32100' )
Istantiate einen Kunden
const client = lib32100 . client ( )
Beachten Sie, dass jeder Client ein Gerät (Kamera) und mehrere Cloud-Server verwalten kann.
Server hinzufügen
client . addServer ( { host : "myserver.example.com" , port : 32100 } )
Legen Sie die Geräte-UID fest
client . setUid ( 'PROD123456ABCDE' )
Zuhörer hinzufügen
client . on ( 'stun' , ( e ) => console . log ( JSON . stringify ( e ) ) )
client . on ( 'lookup' , ( e ) => console . log ( JSON . stringify ( e ) ) )
Senden Sie Befehle an die Cloud-Server
client . sendSTUNRequest ( )
client . lookupUid ( )
Kameraadresse hinzufügen
client . addCamAddress ( { host : "192.168.0.100" , port : 10088 } )
Legen Sie die Anmeldeinformationen der Kamera fest
client . setCamCredentials ( { user : 'admin' , pass : 'password' } )
Direkte Kamerasitzung öffnen
client . openDirectCamSession ( { host : "192.168.0.100" , port : 10088 } )
Überprüfen Sie die Anmeldeinformationen
client . checkCredentials ( )
Holen Sie sich einen Schnappschuss
client . getSnapshot ( )
Senden Sie eine benutzerdefinierte GET-Anfrage
client . sendGet ( '/custom_url.cgi?myparam=hello' )
Senden Sie mehrere GET-Anfragen
client . sendMultipleGet ( [ '/custom_url1.cgi' , '/custom_url2.cgi' , '/custom_url3.cgi' ] )
Erhalten Sie einen Live-Videostream
client . getVideoStream ( )
Erhalten Sie einen Live-Audiostream
client . getAudioStream ( )
Videostream stoppen
client . stopVideoStream ( )
Stoppen Sie den Audiostream
client . stopAudioStream ( )
Holen Sie sich verschiedene Informationen
client . getParams ( )
client . getCameraParams ( )
client . getFactoryParam ( )
client . getStatus ( )
client . cameraControl ( )
client . getMisc ( )
client . login ( )
client . getRtsp ( )
client . getOnvif ( )
client . getRecord ( )
client . wifiScan ( )
client . getWifiScanResult ( )
Bewegen Sie sich schrittweise in Richtungen
client . stepDown ( )
client . stepLeft ( )
client . stepRight ( )
client . stepUp ( )
Bewegen Sie sich in Richtungen
client . moveDown ( )
client . moveLeft ( )
client . moveRight ( )
client . moveUp ( )
client . stopMove ( )
Sitzung schließen
client . closeCamSession ( )
Bei folgenden Veranstaltungen können Sie zuhören:
stun (server response)
lookup (server response)
lookupACK (server response)
unknownMsg (any message not yet parsable by the library)
pingpong (camera ping or pong)
close (camera closed session)
confirmed (camera comfirmed ID i.e. session opened)
ack (camera acked a message)
http (an http response)
audio (live audio data)
video (live video data)
complete (a complete http response)
lostConnection (the connection was lost)
Diese Implementierung basiert nicht auf offiziellen Spezifikationen, sondern ausschließlich auf Reverse Engineering des Protokolls. Ich kann nicht garantieren, dass es auf jedem Gerät funktioniert.
MIT. Urheberrecht (c) Fabrizio Bertone