sgcWebRTC Anrufe und Daten, direkt von Peer zu Peer. Ohne Browser im Prozess.

sgcWebRTC ist die WebRTC-Media-Engine für Delphi und C++ Builder. Ergänze deine Anwendungen um Audio- und Videoanrufe in Echtzeit, Bildschirmfreigabe und SCTP-Datenkanäle, verschlüsselt mit DTLS-SRTP und kompatibel mit der RTCPeerConnection jedes Browsers. Es ist kompiliertes Object Pascal, das die Medien-APIs des Betriebssystems direkt aufruft, ohne WebView und ohne JavaScript-Brücke in deinem Prozess.

  • Delphi
  • C++ Builder
  • Windows, Linux, macOS
  • iOS & Android
  • STUN / TURN / ICE
  • Keine WebView nötig
DEIN SIGNALING-KANAL WebSocket, HTTP, beliebig SDP offer SDP answer + Trickle-ICE-Kandidaten Delphi-App TsgcRTCPeerConnection Audio · Opus Video · H.264 Datenkanal 'chat' keine WebView im Prozess Browser oder Delphi RTCPeerConnection OnAudio OnVideoFrame OnMessage JSEP, RFC 8829 DTLS-SRTP RTP-Medien + SCTP-Daten STUN öffentliche Adresse TURN Relay bei Blockade ICE Das Signaling läuft über deinen Server. Die Medien gehen direkt zwischen den Peers.
  • 1Komponente für die gesamte Peer-Connection
  • 5Plattformen: Windows, Linux, macOS, iOS und Android
  • 5Codecs: Opus, G.711, VP8, H.264 und Motion JPEG
  • 100%der RTP-, RTCP- und SCTP-Pakete verschlüsselt
  • 0Browser oder WebViews in deinem Prozess
Sieh es laufen

sgcWebRTC in zwei Minuten.

Peer-to-Peer-Medien und Datenkanäle aus Delphi: STUN, TURN, ICE und RTCPeerConnection, vom Browser zur nativen Anwendung. Vertont und mit Untertiteln. Nichts wird geladen, bevor du auf Play drückst.

Eine Komponente

Die ganze Peer-Connection in einem Objekt.

sgcWebRTC fügt keine neuen Palettenkomponenten hinzu. Es schaltet den Rest der am W3C-Standard orientierten Oberfläche auf derselben TsgcRTCPeerConnection frei, die in sgcWebSockets Enterprise enthalten ist: Signaling, Konnektivität, Verschlüsselung, Datenkanäle und Medien.

Browserkompatibles Signaling

CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription and AddIceCandidate erzeugen und verarbeiten echtes SDP. Neuverhandlung, ICE-Restart und die Glare-Regel der W3C Perfect Negotiation sind eingebaut.

Komponente ansehen →

STUN, TURN und ICE

ICE-Gathering mit oder ohne Trickle gegen RTCOptions.ICEServers, mit Server-Reflexive-Kandidaten von STUN und Relay-Kandidaten von TURN, wenn ein direkter Weg blockiert ist.

DTLS-SRTP-Verschlüsselung

Ein DTLS-Handshake über das nominierte ICE-Paar leitet die SRTP-Schlüssel ab, und jedes RTP-, RTCP- und SCTP-Paket ist ab dem ersten Paket verschlüsselt. Für Medien lässt sich das nicht abschalten, genau wie bei einem Browser.

Audio- und Video-Tracks

AddTrack fügt einen Opus- oder G.711-Audio-Track oder einen VP8-, H.264- oder Motion-JPEG-Video-Track hinzu. H.264 nutzt den Hardware-Encoder der Plattform: Media Foundation, VideoToolbox oder MediaCodec.

Codec- und Plattformmatrix →

SCTP-Datenkanäle

CreateDataChannel öffnet einen geordneten oder ungeordneten, zuverlässigen oder teilweise zuverlässigen Kanal (RFC 8831/8832). Send, SendBytes, OnMessage and OnMessageBinary übertragen Text- und Binärdaten.

Adaptive Bitrate

Ein verzögerungsbasierter Schätzer im Stil der Google Congestion Control steuert die Zielbitrate des Video-Encoders, unterstützt durch RTCP NACK und PLI, RFC 4588 RTX und RED/ULPFEC.

Schnellstart

Ein Offer und ein Datenkanal.

Lege einen ICE-Server fest, verbinde die SDP- und ICE-Ereignisse, öffne einen Datenkanal und erzeuge dann das Offer. Dieselbe API in Delphi und C++ Builder.

uses
  sgcP2P;
var
  oRTC: TsgcRTCPeerConnection;
begin
  oRTC := TsgcRTCPeerConnection.Create(nil);
  oRTC.RTCOptions.ICEServers.AddURL('stun:stun.l.google.com:19302');
  oRTC.OnLocalDescription := OnLocalDescriptionHandler;
  oRTC.OnICECandidate := OnICECandidateHandler;
  oRTC.OnConnectionStateChange := OnConnectionStateChangeHandler;
  oRTC.OnDataChannel := OnDataChannelHandler;
  oRTC.CreateDataChannel('chat'); // forces RTCOptions.DTLS on
  oRTC.CreateOffer; // gathers ICE candidates, builds the SDP offer
end;

procedure TForm1.OnLocalDescriptionHandler(Sender: TObject;
  const aType, aSDP: string);
begin
  // send aType + aSDP to the remote peer over your own signaling channel
end;

procedure TForm1.OnDataChannelHandler(Sender: TObject;
  aChannel: TsgcRTCDataChannel);
begin
  aChannel.OnMessage := OnChannelMessageHandler;
  aChannel.Send('hello');
end;
// includes: sgcP2P.hpp
TsgcRTCPeerConnection *oRTC = new TsgcRTCPeerConnection(NULL);
oRTC->RTCOptions->ICEServers->AddURL("stun:stun.l.google.com:19302");
oRTC->OnLocalDescription = OnLocalDescriptionHandler;
oRTC->OnICECandidate = OnICECandidateHandler;
oRTC->OnConnectionStateChange = OnConnectionStateChangeHandler;
oRTC->OnDataChannel = OnDataChannelHandler;
oRTC->CreateDataChannel("chat"); // forces RTCOptions->DTLS on
oRTC->CreateOffer(); // gathers ICE candidates, builds the SDP offer

void __fastcall TForm1::OnLocalDescriptionHandler(TObject *Sender,
  const String aType, const String aSDP)
{
  // send aType + aSDP to the remote peer over your own signaling channel
}

void __fastcall TForm1::OnDataChannelHandler(TObject *Sender,
  TsgcRTCDataChannel *aChannel)
{
  aChannel->OnMessage = OnChannelMessageHandler;
  aChannel->Send("hello");
}
  1. Auf einen STUN- oder TURN-Server zeigenFüge die ICE-Server zu RTCOptions.ICEServers hinzu. Die Kandidaten werden gegen sie gesammelt, einzeln per Trickle oder alle auf einmal.
  2. Das SDP über deinen eigenen Kanal übertragenOnLocalDescription liefert dir das Offer oder die Answer, OnICECandidate jeden Kandidaten. Sende sie über einen beliebigen Signaling-Server, genau wie eine Browseranwendung.
  3. Direkt von Peer zu Peer kommunizierenSobald der DTLS-Handshake abgeschlossen ist, öffnen sich die Datenkanäle, und Audio- und Video-Tracks fließen verschlüsselt direkt zwischen den Peers.

Das ist eine Seite des Austauschs. Die Gegenseite, das Signaling-Relay und die darauf aufbauenden Medien-Tracks findest du im Praxisleitfaden.

Zwei Delphi-Apps, Peer to Peer

Wo es passt

WebRTC ohne eingebetteten Browser.

Andere Ansätze für WebRTC in Delphi binden eine komplette Browser-Engine ein und steuern deren JavaScript-Stack aus Pascal. sgcWebRTC ruft die Medien-APIs des Betriebssystems direkt auf. Das hält die Binärdatei klein und lässt dieselbe Komponente auch dort laufen, wo gar kein Browser installiert ist.

Delphi-App zu Browser

Standard-SDP und die JSEP-Zustandsmaschine (RFC 8829) bedeuten, dass ein nativer Delphi- oder C++ Builder-Client die RTCPeerConnection in einer Webseite anrufen kann, und umgekehrt.

Delphi-App zu Delphi-App

Zwei native Anwendungen tauschen Audio, Video und Datenkanäle direkt aus, nur das Signaling läuft über deinen Server.

Praxisleitfaden lesen →

Mobil, Headless und Kiosk

Ohne eingebettetes Chromium läuft dieselbe Komponente unter Android und iOS sowie in Headless-Diensten oder Kiosk-Geräten ohne installierten Browser.

Bildschirmfreigabe und Fernwartung

Erfasse unter Windows den Desktop, einen Monitor, ein Fenster oder einen Bereich samt Mauszeiger und streame ihn als Video-Track mit einem Datenkanal daneben.

Sprach- und Videoanrufe

Native Kamera- und Mikrofon-Capture-Backends unter Windows, Linux, Apple-Plattformen und Android speisen die Tracks direkt, und Renderer-Backends zeigen das Remote-Video an.

Datenverbindungen mit geringer Latenz

Nutze Datenkanäle auch allein für Chat, Telemetrie, Dateiübertragung oder Spielzustand, mit Zuverlässigkeit und Reihenfolge pro Kanal wählbar.

Lizenzierung

Ein Add-on zu sgcWebSockets Enterprise.

sgcWebRTC schaltet die Media-Engine auf der TsgcRTCPeerConnection frei, die sgcWebSockets Enterprise bereits mit ICE- und TURN-Konnektivität mitbringt. Für Standard oder Professional ist es nicht verfügbar. Jede Lizenz enthält den vollständigen Quellcode und ein Jahr Updates.

sgcWebSockets Enterprise

Die Grundlage: STUN-, TURN- und ICE-Clients, die Basis-TsgcRTCPeerConnection sowie WebSocket, HTTP/2, MQTT und der Rest der Bibliothek.

€699 / Entwickler

sgcWebRTC

SDP-Signaling, DTLS-SRTP, SCTP-Datenkanäle, Audio- und Video-Tracks, Bildschirmaufnahme und Bandbreitenschätzung. Single-, Team- und Site-Lizenzen.

€299 / Entwickler

All-Access-Bundle

Jedes eSeGeCe-Produkt für ein Jahr, Delphi und .NET, einschließlich sgcWebSockets Enterprise und sgcWebRTC, mit Premium-Support.

€1,059 / Entwickler

Der Test-Installer gilt pro IDE-Version und enthält die WebRTC-Komponenten bereits, es gibt also keinen separaten Download.

sgcWebRTC-Preise ansehen

Bring eine echte Peer-Connection in deine Delphi-App.

Audio, Video und Datenkanäle, Ende-zu-Ende-verschlüsselt, in der Sprache, die du bereits nutzt.

Neues aus dem Blog

Alle Beiträge ansehen →

Du siehst gerade die Ansicht sgcWebRTC von eSeGeCe.

Zeig mir eine andere Perspektive →
30 Tage Geld-zurück-GarantieNicht zufrieden? Fordere innerhalb von 30 Tagen nach dem Kauf eine vollständige Rückerstattung an. Rückerstattungsrichtlinie ansehen