WebRTC-Live-Stream - Parameter "SDP offer"

Hallo,

um mit einer API den WebRTC-Live-Stream einer Kamera zu bekommen, wird als Parameter eine „SDP offer“ verlangt. Dazu heißt es:

An SDP offer, specific to the local device that will display the WebRTC live stream.

Was muss ich hier unter IPS als Parameter eintragen?

Danke für Eure Hilfe und viele Grüße…

Ich bin ein Stück weiter gekommen. Diesen Code habe ich gefunden:

const myPeerConnection = new RTCPeerConnection

    myPeerConnection.createDataChannel("dataSendChannel");

    myPeerConnection.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0}).then(function(offer) {
        return myPeerConnection.setLocalDescription(offer);
      })
      .then(function() {
        console.log(myPeerConnection.localDescription.sdp + "\n");
      })
      .catch(function(reason) {
        console.log("An error occurred, so handle the failure to connect");
      });

Dazu der Hinweis, dass dieser Code eine SDP offer generiert, die von der betreffenden API (Google) akzeptiert wird.

Mir ist leider nicht klar, wie ich aus diesem Code die SDP offer als String generieren kann, um sie in das entsprechende Skript eintragen zu können, mit dem ich den Live-Stream generiere…

Wir unterstützen MJPEG und RTSP. WebRTC ist wieder etwas ganz anderes. Und ich glaube WebRTC nutzt intern wieder RTP, das jedoch nicht mit RTSP kompatibel ist :slight_smile:

paresy

Vielen Dank, paresy - das heißt, ich kann das unter IPS gar nicht nutzen?

Das Skript wäre wie folgt, wobei ich wie dargestellt noch die $GENERIERTE_OFFER_SDP bräuchte:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://smartdevicemanagement.googleapis.com/v1/enterprises/'.$project_id.'/devices/'.$device_id.':executeCommand');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\n    \"command\" : \"sdm.devices.commands.CameraLiveStream.GenerateWebRtcStream\",\n    \"params\" : {\n    \"offerSdp\" : \"$GENERIERTE_OFFER_SDP\"\n    }\n  }");

$headers = array();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$access_token ));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);

Oder gibt es eine Möglichkeit, das irgendwie reinzukommen?

Offenbar kann man WebRTC in RTSP umwandeln, vgl. hier. Aber ich habe keine Ahnung, ob das von IPS gemacht werden kann…