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.
Füge deinen Delphi- und C++-Builder-Anwendungen Echtzeit-Audio, -Video, Bildschirmfreigabe und Datenkanäle hinzu, ganz ohne Browser.
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.
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.
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.
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.
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.
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.
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.
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.
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 →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");
}
Eine standardbasierte Media-Engine, kein proprietärer Transport.
Interactive-Connectivity-Establishment-Kandidaten-Gathering und -Nominierung, sowie die dahinterliegenden STUN-Binding-Anfragen. Über TsgcICEClient zugänglich und automatisch von TsgcRTCPeerConnection genutzt.
Weitergeleitete Kandidaten über einen TURN-Server, wenn ein direkter oder server-reflexiver Pfad nicht erreichbar ist, über TsgcTURNClient.
Der DTLS-Handshake, der die Peer-Verbindung authentifiziert und das SRTP-Schlüsselmaterial für verschlüsselte Medien ableitet.
SCTP über DTLS mit dem DCEP-Open-Handshake, Stream-ID-Parität nach DTLS-Rolle sowie geordneter / teilweise zuverlässiger Zustellung.
Echtzeittransport für Audio und Video sowie sein verschlüsseltes Profil, mit RTCP-Sender-/Empfänger-Reports, NACK, PLI und REMB-Feedback.
Die Offer/Answer-Zustandsmaschine hinter CreateOffer / CreateAnswer / SetLocalDescription / SetRemoteDescription, einschließlich Renegotiation und Glare-Auflösung.
sgcWebRTC wird als Add-on lizenziert. Alle Lizenzen enthalten vollständigen Quellcode, 1 Jahr Updates und 70% Verlängerungsrabatt.
€299
Single-, Team- und Site-Lizenzen verfügbar. Vollständiger Quellcode inklusive.
★ Erfordert sgcWebSockets Enterprise
Nicht verfügbar für Standard oder Professional. Auch im All-Access-Bundle enthalten.
Preise ansehen & bestellenDie Fragen, die Entwickler stellen, bevor sie Echtzeit-Audio, -Video oder Datenkanäle zu einer Delphi- oder C++-Builder-Anwendung hinzufügen.
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.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.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.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.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.Kombiniere sgcWebRTC mit unseren anderen Komponentenbibliotheken für Delphi, C++ Builder und .NET.
Enterprise-WebSocket-, HTTP/2-, MQTT-, AMQP- und KI-/LLM-Komponenten. sgcWebRTC ist ein Add-on zu sgcWebSockets Enterprise.
Mehr erfahren →QUIC- (RFC 9000) und HTTP/3-Client- und -Serverkomponenten (RFC 9114) auf der nativen OpenSSL-3.5-QUIC-Engine.
Mehr erfahren →89 datengebundene serverseitige HTML/UI-Komponenten für Delphi, C++ Builder und .NET, mit Bootstrap 5 und htmx.
Mehr erfahren →Digitale Signaturen für Unternehmen — XAdES, PAdES, CAdES und ASiC mit 10 Schlüsselanbietern und 21 EU-Länderprofilen.
Mehr erfahren →OpenAPI-3.0-Parser und SDK-Generator. Verwandle jede OpenAPI-Spezifikation in Sekunden in einen stark typisierten Delphi-Client.
Mehr erfahren →Native Komponenten für Windows Hello, Fingerabdruck und das Windows Biometric Framework für Delphi und C++ Builder.
Mehr erfahren →Aktualisierte Indy-TCP/IP-Komponenten mit modernem TLS, IPv6 und HTTP/2-Unterstützung für Delphi 7 bis 13.
Mehr erfahren →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 →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 →