WebRTC-media-engine voor Delphi & C++ Builder | sgcWebRTC

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.

Geen browser of WebView vereist
Windows, Linux, macOS, iOS & Android
Audio- en video-oproepen
Schermdelen
SCTP-datakanalen
DTLS-SRTP-versleuteld
STUN / TURN / ICE ingebouwd
Adaptieve bitrate
Hardwarematige H.264-encoding
Interoperabel met browsers
Volledige broncode
Delphi & C++ Builder

Eén component, de complete peer-connectie

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.

Handmatige, browsercompatibele signalering

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.

ICE-, STUN- en TURN-connectiviteit

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.

DTLS-SRTP-versleuteld 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.

SCTP-datakanalen

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.

Audio-, video- en schermtracks

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.

Bandbreedteschatting & robuustheid

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.

TsgcRTCPeerConnection

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.

TsgcRTCPeerConnection

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 →

Bekijk het volledige functieoverzicht →

Een offer, en een datakanaal

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");
}

De RFC's die sgcWebRTC implementeert

Een op standaarden gebaseerde media-engine, geen propriëtair transport.

RFC 8445 & 8489 — ICE / STUN

Interactive Connectivity Establishment candidate-gathering en -nominatie, en de STUN-bindingsverzoeken erachter. Beschikbaar via TsgcICEClient en automatisch gebruikt door TsgcRTCPeerConnection.

RFC 8656 — TURN

Relayed candidates via een TURN-server wanneer een direct of server-reflexive pad niet bereikbaar is, via TsgcTURNClient.

RFC 8827 & 5764 — DTLS / DTLS-SRTP

De DTLS-handshake die de peer-connectie authenticeert en het SRTP-sleutelmateriaal voor versleutelde media afleidt.

RFC 8831 & 8832 — SCTP-datakanalen

SCTP over DTLS met de DCEP-openingshandshake, stream-id-pariteit per DTLS-rol, en geordende / gedeeltelijk betrouwbare aflevering.

RFC 3550 & 3711 — RTP / SRTP

Realtime transport voor audio en video en het versleutelde profiel ervan, met RTCP-sender-/receiver-reports, NACK-, PLI- en REMB-feedback.

RFC 8829 — JSEP

De offer/answer-toestandsmachine achter CreateOffer / CreateAnswer / SetLocalDescription / SetRemoteDescription, inclusief renegotiatie en glare-resolutie.

Een add-on voor sgcWebSockets Enterprise

sgcWebRTC wordt gelicentieerd als add-on. Alle licenties bevatten volledige broncode, 1 jaar updates en 70% verlengingskorting.

sgcWebRTC

€299

Single-, Team- en Site-licenties beschikbaar. Volledige broncode inbegrepen.

  • TsgcRTCPeerConnection-media-engine
  • SDP-signalering, SCTP-datakanalen, RTP-media
  • Delphi & C++ Builder
  • Volledige broncode
  • 1 jaar updates

★ Vereist sgcWebSockets Enterprise

Niet beschikbaar voor Standard of Professional. Ook inbegrepen in de All-Access-bundel.

Bekijk prijzen en bestel

WebRTC in Delphi, veelgestelde vragen

De vragen die ontwikkelaars stellen voordat ze realtime audio, video of datakanalen toevoegen aan een Delphi- of C++ Builder-toepassing.

Niet standaard, en de meeste bibliotheken van derden stoppen bij signalering. sgcWebSockets Enterprise levert de basiscomponent 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.
Ja. 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.
Ja. 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.
Audio: Opus en G.711 (PCMU/PCMA). Video: VP8 via een libvpx-binding, en H.264 via de eigen hardware-encoder van het besturingssysteem — Media Foundation op Windows, VideoToolbox op iOS/macOS, MediaCodec op Android — plus een Motion JPEG-pad op Windows. Zie het functieoverzicht voor de platformmatrix.
Ja, en het kan niet worden uitgeschakeld voor media: een DTLS-SRTP-handshake loopt over het genomineerde ICE-paar en elk RTP-, RTCP- en SCTP-pakket op de verbinding is versleuteld, hetzelfde verplichte-versleutelingsmodel dat een browser afdwingt.
Nee. Verschillende andere benaderingen van WebRTC in Delphi werken door een volledige browser-engine te embedden (een Chromium Embedded Framework-wrapper of een 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.
sgcWebRTC volgt de ondersteuningsmatrix van sgcWebSockets, Delphi 7 tot en met Delphi 13 Florence en de bijbehorende C++ Builder-versies. De proefinstaller is per IDE-versie en bevat de WebRTC-componenten al, dus er is geen aparte download.
Niet voor de media-engine. De .NET-poort van sgcWebSockets bevat een WebRTC-signaleringsrelais (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.
sgcWebRTC is een add-on voor sgcWebSockets Enterprise — niet beschikbaar voor Standard of Professional — en is ook inbegrepen in de All-Access-bundel. Single-, Team- en Site-licenties zijn beschikbaar, elk met volledige broncode en één jaar updates. Download de proefversie om het in je eigen project te evalueren voordat je koopt.
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid

Zet een echte peer-connectie achter je Delphi-app

Audio, video en datakanalen, end-to-end versleuteld, vanuit de taal die je al gebruikt.

Andere producten van eSeGeCe

Combineer sgcWebRTC met onze andere componentbibliotheken voor Delphi, C++ Builder en .NET.

sgcWebSockets

Enterprise WebSocket-, HTTP/2-, MQTT-, AMQP- en AI/LLM-componenten. sgcWebRTC is een add-on voor sgcWebSockets Enterprise.

Meer informatie →

sgcQUIC

QUIC- (RFC 9000) en HTTP/3- (RFC 9114) client- en servercomponenten op de native OpenSSL 3.5 QUIC-engine.

Meer informatie →

sgcHTML

89 data-aware server-side HTML/UI-componenten voor Delphi, C++ Builder en .NET, met Bootstrap 5 en htmx.

Meer informatie →

sgcSign

Enterprise digitale handtekeningen — XAdES, PAdES, CAdES en ASiC met 10 sleutelproviders en 21 EU-landprofielen.

Meer informatie →

sgcOpenAPI

OpenAPI 3.0-parser en SDK-generator. Zet elke OpenAPI-specificatie in seconden om in een sterk getypeerde Delphi-client.

Meer informatie →

sgcBiometrics

Native componenten voor Windows Hello, vingerafdruk en het Windows Biometric Framework voor Delphi en C++ Builder.

Meer informatie →

sgcIndy

Bijgewerkte Indy TCP/IP-componenten met moderne TLS, IPv6 en HTTP/2-ondersteuning voor Delphi 7 tot en met 13.

Meer informatie →

sgcAI

15 AI-, LLM- en MCP-componenten. Eén chatcomponent bereikt OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok en Mistral.

Meer informatie →

sgcMQ

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 →