WebRTC-Media-Engine für Delphi & C++ Builder | sgcWebRTC

sgcWebRTC — die WebRTC-Media-Engine für Delphi & C++ Builder

Füge deinen Delphi- und C++-Builder-Anwendungen Echtzeit-Audio, -Video, Bildschirmfreigabe und Datenkanäle hinzu, ganz ohne Browser.

Kein Browser / WebView nötig
Windows, Linux, macOS, iOS & Android
Audio- & Videoanrufe
Bildschirmfreigabe
SCTP-Datenkanäle
DTLS-SRTP-verschlüsselt
STUN / TURN / ICE integriert
Adaptive Bitrate
Hardware-H.264-Encoding
Interoperabel mit Browsern
Vollständiger Quellcode
Delphi & C++ Builder

Eine Komponente, die komplette Peer-Verbindung

sgcWebRTC fügt keine neuen Palette-Komponenten zu sgcWebSockets hinzu — es schaltet den Rest der W3C-förmigen Oberfläche auf derselben TsgcRTCPeerConnection-Klasse frei: Signaling, Konnektivität, Verschlüsselung, Datenkanäle und Medien leben alle auf einem Objekt.

Manuelles, browserkompatibles Signaling

CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription und AddIceCandidate bauen echtes SDP auf und verarbeiten es, sodass der Peer auf der anderen Seite ein Browser sein kann. Du transportierst das SDP über den Signaling-Kanal, den du bereits hast.

ICE-, STUN- und TURN-Konnektivität

Trickle- oder Non-Trickle-ICE-Gathering gegen RTCOptions.ICEServers, mit server-reflexiven Kandidaten von STUN und weitergeleiteten Kandidaten von TURN, wenn ein direkter Pfad blockiert ist. OnICECandidate und OnConnectionStateChange verfolgen den Transport.

DTLS-SRTP-verschlüsselter Transport

Jede Sitzung wird so gesichert, wie WebRTC es vorschreibt: Ein DTLS-Handshake über das nominierte ICE-Paar leitet die SRTP-Schlüssel ab, und jedes RTP-, RTCP- und SCTP-Paket auf der Verbindung ist ab dem ersten Paket verschlüsselt.

SCTP-Datenkanäle

CreateDataChannel öffnet einen geordneten oder ungeordneten, zuverlässigen oder teilweise zuverlässigen Kanal (RFC 8831/8832) über SCTP-over-DTLS. Send, SendBytes und die Ereignisse OnMessage / OnMessageBinary transportieren Text- und Binär-Payloads.

Audio-, Video- und Bildschirm-Tracks

AddTrack hängt einen Opus- oder G.711-Audio-Track an, oder einen VP8-, H.264- oder Motion-JPEG-Video-Track; SendPCM und SendVideoFrame speisen aufgenommene Medien ein, OnAudio und OnVideoFrame liefern den dekodierten Remote-Track.

Bandbreitenschätzung & Resilienz

Ein verzögerungsbasierter Schätzer im Stil von Google Congestion Control verfolgt die Leitung und steuert die Ziel-Bitrate des Video-Encoders, unterstützt durch RTCP-NACK/PLI-Neuübertragung, RFC 4588-RTX und RED/ULPFEC, dieselbe Toolbox, die ein Browser bei einer verlustbehafteten Netzwerkverbindung einsetzt.

TsgcRTCPeerConnection

sgcWebRTC fügt der Palette keine neue Klasse hinzu. Es ist dieselbe TsgcRTCPeerConnection-Komponente, die bereits in sgcWebSockets Enterprise enthalten ist, mit der SDP-, SCTP-, RTP- und SRTP-Oberfläche freigeschaltet, oben auf der ICE/TURN-Konnektivität, die Enterprise dir bereits bietet.

TsgcRTCPeerConnection

Manuelles SDP-Signaling, ICE/TURN-Konnektivität, DTLS-SRTP-Verschlüsselung, SCTP-Datenkanäle und RTP-Audio-/Video-Tracks auf einer Komponente. Renegotiation, ICE-Restart und die W3C-Perfect-Negotiation-Glare-Regel sind bereits integriert.

Komponente ansehen →

Vollständige Funktionsübersicht ansehen →

Ein Angebot und ein Datenkanal

Setze einen ICE-Server, hänge die SDP- und ICE-Ereignisse ein, öffne einen Datenkanal und erstelle dann das Angebot. 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");
}

Die RFCs, die sgcWebRTC implementiert

Eine standardbasierte Media-Engine, kein proprietärer Transport.

RFC 8445 & 8489 — ICE / STUN

Interactive-Connectivity-Establishment-Kandidaten-Gathering und -Nominierung, sowie die dahinterliegenden STUN-Binding-Anfragen. Über TsgcICEClient zugänglich und automatisch von TsgcRTCPeerConnection genutzt.

RFC 8656 — TURN

Weitergeleitete Kandidaten über einen TURN-Server, wenn ein direkter oder server-reflexiver Pfad nicht erreichbar ist, über TsgcTURNClient.

RFC 8827 & 5764 — DTLS / DTLS-SRTP

Der DTLS-Handshake, der die Peer-Verbindung authentifiziert und das SRTP-Schlüsselmaterial für verschlüsselte Medien ableitet.

RFC 8831 & 8832 — SCTP-Datenkanäle

SCTP über DTLS mit dem DCEP-Open-Handshake, Stream-ID-Parität nach DTLS-Rolle sowie geordneter / teilweise zuverlässiger Zustellung.

RFC 3550 & 3711 — RTP / SRTP

Echtzeittransport für Audio und Video sowie sein verschlüsseltes Profil, mit RTCP-Sender-/Empfänger-Reports, NACK, PLI und REMB-Feedback.

RFC 8829 — JSEP

Die Offer/Answer-Zustandsmaschine hinter CreateOffer / CreateAnswer / SetLocalDescription / SetRemoteDescription, einschließlich Renegotiation und Glare-Auflösung.

Ein Add-on zu sgcWebSockets Enterprise

sgcWebRTC wird als Add-on lizenziert. Alle Lizenzen enthalten vollständigen Quellcode, 1 Jahr Updates und 70% Verlängerungsrabatt.

sgcWebRTC

€299

Single-, Team- und Site-Lizenzen verfügbar. Vollständiger Quellcode inklusive.

  • TsgcRTCPeerConnection-Media-Engine
  • SDP-Signaling, SCTP-Datenkanäle, RTP-Medien
  • Delphi & C++ Builder
  • Vollständiger Quellcode
  • 1 Jahr Updates

★ Erfordert sgcWebSockets Enterprise

Nicht verfügbar für Standard oder Professional. Auch im All-Access-Bundle enthalten.

Preise ansehen & bestellen

WebRTC in Delphi, häufig gefragt

Die Fragen, die Entwickler stellen, bevor sie Echtzeit-Audio, -Video oder Datenkanäle zu einer Delphi- oder C++-Builder-Anwendung hinzufügen.

Nicht ab Werk, und die meisten Drittanbieter-Bibliotheken hören beim Signaling auf. sgcWebSockets Enterprise liefert die Basiskomponente TsgcRTCPeerConnection für ICE/TURN-Konnektivität; sgcWebRTC ergänzt die Media-Engine darauf — manuelles SDP-Offer/Answer, DTLS-SRTP-verschlüsselter Transport, SCTP-Datenkanäle und Opus/G.711-Audio mit VP8/H.264-Video —, sodass die Komponente tatsächlich eine Peer-Verbindung mit einem Browser öffnen und Medien austauschen kann, nicht nur Signaling-Nachrichten weiterleiten.
Ja. CreateOffer / CreateAnswer erstellen Standard-SDP, und SetLocalDescription / SetRemoteDescription / AddIceCandidate verarbeiten es, gemäß der JSEP-Zustandsmaschine (RFC 8829), die ein Browser erwartet. Du transportierst SDP und Kandidaten über deinen eigenen Signaling-Kanal, genau wie es eine Browser-Anwendung über ihren Signaling-Server tut.
Ja. CreateDataChannel öffnet einen RTCDataChannel über SCTP-over-DTLS (RFC 8831/8832), geordnet oder ungeordnet, zuverlässig oder mit einem Neuübertragungs- oder Lebensdauer-Limit. OnDataChannel löst aus, wenn der Remote-Peer einen Kanal öffnet, und Send / SendBytes transportieren Text- oder Binär-Payloads, sobald der Kanal offen ist.
Audio: Opus und G.711 (PCMU/PCMA). Video: VP8 über eine libvpx-Anbindung, und H.264 über den eigenen Hardware-Encoder des Betriebssystems — Media Foundation unter Windows, VideoToolbox auf iOS/macOS, MediaCodec auf Android —, dazu ein Motion-JPEG-Pfad unter Windows. Die Plattformmatrix findest du in der Funktionsübersicht.
Ja, und es kann für Medien nicht abgeschaltet werden: Ein DTLS-SRTP-Handshake läuft über das nominierte ICE-Paar, und jedes RTP-, RTCP- und SCTP-Paket auf der Verbindung ist verschlüsselt, dasselbe verpflichtende Verschlüsselungsmodell, das ein Browser erzwingt.
Nein. Mehrere andere Ansätze für WebRTC in Delphi funktionieren, indem sie eine vollständige Browser-Engine einbetten (ein Chromium-Embedded-Framework-Wrapper oder eine TWebBrowser-/TEdgeBrowser-Komponente) und deren JavaScript-WebRTC-Stack aus Pascal heraus steuern. sgcWebRTC tut das nicht: TsgcRTCPeerConnection ist kompiliertes Object Pascal, das die eigenen Medien-APIs des Betriebssystems direkt aufruft (Media Foundation unter Windows, VideoToolbox auf iOS/macOS, MediaCodec auf Android), ohne Browser-Laufzeit, ohne eingebettetes Chromium-Binary und ohne JavaScript-Brücke im Prozess. Das hält die Binärdatei klein und lässt dieselbe Komponente auf Android und iOS laufen, sowie in Headless-Diensten oder Kiosk-Geräten ganz ohne installierten Browser.
sgcWebRTC folgt der Support-Matrix von sgcWebSockets, Delphi 7 bis Delphi 13 Florence und die passenden C++-Builder-Versionen. Der Trial-Installer gilt pro IDE-Version und enthält die WebRTC-Komponenten bereits, es gibt also keinen separaten Download.
Nicht für die Media-Engine. Der sgcWebSockets-.NET-Port enthält ein WebRTC-Signaling-Relay (TsgcWSProtocol_WebRTC_Server) für die klassische AppRTC-artige Browser-zu-Browser-Demo, aber kein .NET-Äquivalent von TsgcRTCPeerConnection. sgcWebRTC selbst gibt es nur für Delphi und C++ Builder.
sgcWebRTC ist ein Add-on zu sgcWebSockets Enterprise — es ist nicht für Standard oder Professional verfügbar — und ist außerdem im All-Access-Bundle enthalten. Es gibt Single-, Team- und Site-Lizenzen, jeweils mit vollständigem Quellcode und einem Jahr Updates. Lade die Testversion herunter, um sie in deinem eigenen Projekt zu evaluieren, bevor du kaufst.
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30 Tage Geld-zurück-GarantieNicht zufrieden? Fordern Sie innerhalb von 30 Tagen nach dem Kauf eine vollständige Rückerstattung an. Rückerstattungsrichtlinie ansehen

Bring eine echte Peer-Verbindung hinter deine Delphi-App

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

Weitere Produkte von eSeGeCe

Kombiniere sgcWebRTC mit unseren anderen Komponentenbibliotheken für Delphi, C++ Builder und .NET.

sgcWebSockets

Enterprise-WebSocket-, HTTP/2-, MQTT-, AMQP- und KI-/LLM-Komponenten. sgcWebRTC ist ein Add-on zu sgcWebSockets Enterprise.

Mehr erfahren →

sgcQUIC

QUIC- (RFC 9000) und HTTP/3-Client- und -Serverkomponenten (RFC 9114) auf der nativen OpenSSL-3.5-QUIC-Engine.

Mehr erfahren →

sgcHTML

89 datengebundene serverseitige HTML/UI-Komponenten für Delphi, C++ Builder und .NET, mit Bootstrap 5 und htmx.

Mehr erfahren →

sgcSign

Digitale Signaturen für Unternehmen — XAdES, PAdES, CAdES und ASiC mit 10 Schlüsselanbietern und 21 EU-Länderprofilen.

Mehr erfahren →

sgcOpenAPI

OpenAPI-3.0-Parser und SDK-Generator. Verwandle jede OpenAPI-Spezifikation in Sekunden in einen stark typisierten Delphi-Client.

Mehr erfahren →

sgcBiometrics

Native Komponenten für Windows Hello, Fingerabdruck und das Windows Biometric Framework für Delphi und C++ Builder.

Mehr erfahren →

sgcIndy

Aktualisierte Indy-TCP/IP-Komponenten mit modernem TLS, IPv6 und HTTP/2-Unterstützung für Delphi 7 bis 13.

Mehr erfahren →

sgcAI

15 KI-, LLM- und MCP-Komponenten für Delphi und C++ Builder. Eine Chat-Komponente erreicht OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok und Mistral.

Mehr erfahren →

sgcMQ

MQTT-3.1.1- und -5.0-, AMQP-0.9.1-, AMQP-1.0-, Apache-Kafka- und STOMP-Clientkomponenten für Delphi und C++ Builder.

Mehr erfahren →