sgcWebRTC — de WebRTC-media-engine voor Delphi & C++ Builder
Voeg realtime audio, video, schermdelen en datakanalen toe aan je Delphi- en C++ Builder-toepassingen, zonder een browser aan te raken.
Voeg realtime audio, video, schermdelen en datakanalen toe aan je Delphi- en C++ Builder-toepassingen, zonder een browser aan te raken.
sgcWebRTC voegt geen nieuwe paletcomponenten toe bovenop sgcWebSockets — het ontgrendelt de rest van het W3C-vormgegeven oppervlak op dezelfde klasse TsgcRTCPeerConnection: signalering, connectiviteit, versleuteling, datakanalen en media leven allemaal op één object.
CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription en AddIceCandidate bouwen en verwerken echte SDP, zodat de peer aan de andere kant een browser kan zijn. Je draagt de SDP over via het signaleringskanaal dat je al hebt.
Trickle- of non-trickle ICE-gathering tegen RTCOptions.ICEServers, met server-reflexive candidates van STUN en relayed candidates van TURN wanneer een direct pad geblokkeerd is. OnICECandidate en OnConnectionStateChange volgen het transport.
Elke sessie wordt beveiligd zoals WebRTC voorschrijft: een DTLS-handshake over het genomineerde ICE-paar leidt de SRTP-sleutels af, en elk RTP-, RTCP- en SCTP-pakket op de verbinding is vanaf het eerste pakket versleuteld.
CreateDataChannel opent een geordend of ongeordend, betrouwbaar of gedeeltelijk betrouwbaar kanaal (RFC 8831/8832) over SCTP-over-DTLS. Send, SendBytes en de events OnMessage / OnMessageBinary verplaatsen tekst- en binaire payloads.
AddTrack koppelt een Opus- of G.711-audiotrack, of een VP8-, H.264- of Motion JPEG-videotrack; SendPCM en SendVideoFrame sturen opgenomen media naar binnen, OnAudio en OnVideoFrame leveren de gedecodeerde remote track.
Een delay-based estimator in de stijl van Google Congestion Control volgt de verbinding en stuurt de doelbitrate van de video-encoder aan, ondersteund door RTCP NACK/PLI-hertransmissie, RFC 4588 RTX en RED/ULPFEC, dezelfde toolbox die een browser gebruikt op een lossy netwerk.
sgcWebRTC voegt geen nieuwe klasse toe aan het palet. Het is dezelfde component TsgcRTCPeerConnection die met sgcWebSockets Enterprise wordt meegeleverd, met het SDP-, SCTP-, RTP- en SRTP-oppervlak ontgrendeld bovenop de ICE/TURN-connectiviteit die Enterprise al biedt.
Handmatige SDP-signalering, ICE/TURN-connectiviteit, DTLS-SRTP-versleuteling, SCTP-datakanalen en RTP-audio-/videotracks op één component. Renegotiatie, ICE-restart en de W3C-perfect-negotiation-glare-regel zijn ingebouwd.
Bekijk component →Stel een ICE-server in, koppel de SDP- en ICE-events, open een datakanaal en maak dan de offer aan. Dezelfde API in Delphi en 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");
}
Een op standaarden gebaseerde media-engine, geen propriëtair transport.
Interactive Connectivity Establishment candidate-gathering en -nominatie, en de STUN-bindingsverzoeken erachter. Beschikbaar via TsgcICEClient en automatisch gebruikt door TsgcRTCPeerConnection.
Relayed candidates via een TURN-server wanneer een direct of server-reflexive pad niet bereikbaar is, via TsgcTURNClient.
De DTLS-handshake die de peer-connectie authenticeert en het SRTP-sleutelmateriaal voor versleutelde media afleidt.
SCTP over DTLS met de DCEP-openingshandshake, stream-id-pariteit per DTLS-rol, en geordende / gedeeltelijk betrouwbare aflevering.
Realtime transport voor audio en video en het versleutelde profiel ervan, met RTCP-sender-/receiver-reports, NACK-, PLI- en REMB-feedback.
De offer/answer-toestandsmachine achter CreateOffer / CreateAnswer / SetLocalDescription / SetRemoteDescription, inclusief renegotiatie en glare-resolutie.
sgcWebRTC wordt gelicentieerd als add-on. Alle licenties bevatten volledige broncode, 1 jaar updates en 70% verlengingskorting.
€299
Single-, Team- en Site-licenties beschikbaar. Volledige broncode inbegrepen.
★ Vereist sgcWebSockets Enterprise
Niet beschikbaar voor Standard of Professional. Ook inbegrepen in de All-Access-bundel.
Bekijk prijzen en bestelDe vragen die ontwikkelaars stellen voordat ze realtime audio, video of datakanalen toevoegen aan een Delphi- of C++ Builder-toepassing.
TsgcRTCPeerConnection voor ICE/TURN-connectiviteit; sgcWebRTC voegt de media-engine eroverheen toe — handmatige SDP-offer/answer, DTLS-SRTP-versleuteld transport, SCTP-datakanalen, en Opus/G.711-audio met VP8/H.264-video — zodat de component daadwerkelijk een peer-connectie met een browser kan openen en media kan uitwisselen, niet alleen signaleringsberichten doorgeven.CreateOffer / CreateAnswer bouwen standaard-SDP en SetLocalDescription / SetRemoteDescription / AddIceCandidate verwerken die, volgens de JSEP-toestandsmachine (RFC 8829) die een browser verwacht. Je draagt de SDP en candidates over via je eigen signaleringskanaal, precies zoals een browsertoepassing dat doet via zijn signaleringsserver.CreateDataChannel opent een RTCDataChannel over SCTP-over-DTLS (RFC 8831/8832), geordend of ongeordend, betrouwbaar of met een hertransmissie- of levensduurlimiet. OnDataChannel wordt geactiveerd voor een kanaal dat de remote peer opende, en Send / SendBytes verplaatsen tekst- of binaire payloads zodra het kanaal open is.TWebBrowser/TEdgeBrowser-control) en de WebRTC-stack in JavaScript vanuit Pascal aan te sturen. sgcWebRTC doet dat niet: TsgcRTCPeerConnection is gecompileerde Object Pascal die rechtstreeks de eigen media-API's van het besturingssysteem aanroept (Media Foundation op Windows, VideoToolbox op iOS/macOS, MediaCodec op Android), zonder browserruntime, zonder embedded Chromium-binary en zonder JavaScript-brug in het proces. Dat houdt de binary klein en laat dezelfde component draaien op Android en iOS, en in headless services of kioskapparaten zonder enige browser geïnstalleerd.TsgcWSProtocol_WebRTC_Server) voor de klassieke AppRTC-achtige demo tussen browsers, maar geen .NET-equivalent van TsgcRTCPeerConnection. sgcWebRTC zelf is alleen Delphi en C++ Builder.Combineer sgcWebRTC met onze andere componentbibliotheken voor Delphi, C++ Builder en .NET.
Enterprise WebSocket-, HTTP/2-, MQTT-, AMQP- en AI/LLM-componenten. sgcWebRTC is een add-on voor sgcWebSockets Enterprise.
Meer informatie →QUIC- (RFC 9000) en HTTP/3- (RFC 9114) client- en servercomponenten op de native OpenSSL 3.5 QUIC-engine.
Meer informatie →89 data-aware server-side HTML/UI-componenten voor Delphi, C++ Builder en .NET, met Bootstrap 5 en htmx.
Meer informatie →Enterprise digitale handtekeningen — XAdES, PAdES, CAdES en ASiC met 10 sleutelproviders en 21 EU-landprofielen.
Meer informatie →OpenAPI 3.0-parser en SDK-generator. Zet elke OpenAPI-specificatie in seconden om in een sterk getypeerde Delphi-client.
Meer informatie →Native componenten voor Windows Hello, vingerafdruk en het Windows Biometric Framework voor Delphi en C++ Builder.
Meer informatie →Bijgewerkte Indy TCP/IP-componenten met moderne TLS, IPv6 en HTTP/2-ondersteuning voor Delphi 7 tot en met 13.
Meer informatie →15 AI-, LLM- en MCP-componenten. Eén chatcomponent bereikt OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok en Mistral.
Meer informatie →MQTT 3.1.1- en 5.0-, AMQP 0.9.1-, AMQP 1.0-, Apache Kafka- en STOMP-clientcomponenten voor Delphi en C++ Builder.
Meer informatie →