sgcWebRTC Gesprekken en data, peer-to-peer. Geen browser binnenin.

sgcWebRTC is de WebRTC-media-engine voor Delphi en C++ Builder. Voeg realtime audio- en videogesprekken, schermdelen en SCTP-datakanalen toe aan je applicaties, versleuteld met DTLS-SRTP en uitwisselbaar met de RTCPeerConnection in elke browser. Het is gecompileerd Object Pascal dat de eigen media-API's van het besturingssysteem aanroept, zonder WebView en zonder JavaScript-brug in je proces.

  • Delphi
  • C++ Builder
  • Windows, Linux, macOS
  • iOS en Android
  • STUN / TURN / ICE
  • Geen WebView nodig
JE SIGNALERINGSKANAAL WebSocket, HTTP, alles SDP-aanbod SDP-antwoord + trickle-ICE-kandidaten Delphi-app TsgcRTCPeerConnection audio · Opus video · H.264 datakanaal 'chat' geen WebView in het proces Browser of Delphi RTCPeerConnection OnAudio OnVideoFrame OnMessage JSEP, RFC 8829 DTLS-SRTP RTP-media + SCTP-data STUN openbaar adres TURN relay bij blokkade ICE De signalering loopt via je server. De media gaat rechtstreeks tussen de peers.
  • 1Component voor de hele peer-verbinding
  • 5Platformen: Windows, Linux, macOS, iOS en Android
  • 5Codecs: Opus, G.711, VP8, H.264 en Motion JPEG
  • 100%Van de RTP-, RTCP- en SCTP-pakketten versleuteld
  • 0Browsers of WebViews in je proces
Zie het werken

Zie sgcWebRTC in twee minuten.

Peer-to-peer media en datakanalen vanuit Delphi: STUN, TURN, ICE en RTCPeerConnection, van browser naar native. Ingesproken, met ondertitels. Er wordt niets gedownload tot je op afspelen drukt.

Eén component

De hele peer-verbinding op één object.

sgcWebRTC voegt geen nieuwe paletcomponenten toe. Het ontgrendelt de rest van het W3C-vormige oppervlak op dezelfde TsgcRTCPeerConnection die in sgcWebSockets Enterprise zit: signalering, connectiviteit, versleuteling, datakanalen en media.

Browsercompatibele signalering

CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription and AddIceCandidate bouwen en verwerken echte SDP. Heronderhandeling, ICE-herstart en de W3C-glare-regel voor perfect negotiation zijn ingebouwd.

Bekijk de component →

STUN, TURN en ICE

ICE-verzameling met of zonder trickle tegen RTCOptions.ICEServers, met server-reflexive kandidaten van STUN en relay-kandidaten van TURN wanneer een direct pad geblokkeerd is.

DTLS-SRTP-versleuteling

Een DTLS-handshake over het gekozen ICE-paar leidt de SRTP-sleutels af en elk RTP-, RTCP- en SCTP-pakket is vanaf het eerste pakket versleuteld. Voor media kan dit niet worden uitgezet, hetzelfde model dat een browser afdwingt.

Audio- en videotracks

AddTrack koppelt een Opus- of G.711-audiotrack, of een VP8-, H.264- of Motion JPEG-videotrack. H.264 gebruikt de hardware-encoder van het platform: Media Foundation, VideoToolbox of MediaCodec.

Codec- en platformmatrix →

SCTP-datakanalen

CreateDataChannel opent een geordend of ongeordend, betrouwbaar of deels betrouwbaar kanaal (RFC 8831/8832). Send, SendBytes, OnMessage en OnMessageBinary verplaatsen tekst- en binaire payloads.

Adaptieve bitrate

Een op vertraging gebaseerde schatter in de stijl van Google Congestion Control bepaalt de doelbitrate van de video-encoder, ondersteund door RTCP NACK en PLI, RFC 4588 RTX en RED/ULPFEC.

QuickStart

Een aanbod en een datakanaal.

Stel een ICE-server in, koppel de SDP- en ICE-events, open een datakanaal en maak dan het aanbod. 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");
}
  1. Wijs naar een STUN- of TURN-serverVoeg de ICE-servers toe aan RTCOptions.ICEServers. Kandidaten worden ertegen verzameld, getrickled of allemaal tegelijk.
  2. Stuur de SDP over je eigen kanaalOnLocalDescription geeft je het aanbod of antwoord, OnICECandidate elke kandidaat. Verstuur ze via een willekeurige signaleringsserver, precies zoals een browsertoepassing doet.
  3. Praat peer-to-peerZodra de DTLS-handshake is voltooid, openen datakanalen zich en stromen audio- en videotracks versleuteld rechtstreeks tussen de peers.

Dat is één kant van de uitwisseling. De andere kant, het signaleringsrelay en de mediatracks daarbovenop staan in de taakgids.

Twee Delphi-apps, peer-to-peer

Waar het past

WebRTC zonder een browser in te bouwen.

Andere benaderingen van WebRTC in Delphi bouwen een volledige browser-engine in en sturen de JavaScript-stack aan vanuit Pascal. sgcWebRTC roept de media-API's van het besturingssysteem rechtstreeks aan, waardoor de binary klein blijft en dezelfde component draait waar helemaal geen browser is geïnstalleerd.

Delphi-app naar browser

Standaard SDP en de JSEP-toestandsmachine (RFC 8829) betekenen dat een native Delphi- of C++ Builder-client de RTCPeerConnection in een webpagina kan bellen, en andersom.

Delphi-app naar Delphi-app

Twee native applicaties wisselen audio, video en datakanalen rechtstreeks uit, waarbij alleen de signalering via je server loopt.

Lees de taakgids →

Mobiel, headless en kiosk

Geen ingebouwde Chromium-binary betekent dat dezelfde component draait op Android en iOS, en in headless services of kioskapparaten zonder geïnstalleerde browser.

Schermdelen en support op afstand

Leg onder Windows het bureaublad, een monitor, een venster of een gebied vast, inclusief cursor, en stream het als videotrack met een datakanaal ernaast.

Spraak- en videogesprekken

Native camera- en microfoonopname-backends op Windows, Linux, Apple-platformen en Android voeden de tracks rechtstreeks, en renderer-backends tonen de video van de andere kant.

Gebruik datakanalen op zichzelf voor chat, telemetrie, bestandsoverdracht of spelstatus, met betrouwbaarheid en volgorde per kanaal te kiezen.

Licenties

Een add-on voor sgcWebSockets Enterprise.

sgcWebRTC ontgrendelt de media-engine op de TsgcRTCPeerConnection die sgcWebSockets Enterprise al meelevert met ICE- en TURN-connectiviteit. Het is niet beschikbaar voor Standard of Professional. Elke licentie bevat de volledige broncode en één jaar updates.

sgcWebSockets Enterprise

De basis waarop het bouwt: STUN-, TURN- en ICE-clients, de basis-TsgcRTCPeerConnection, plus WebSocket, HTTP/2, MQTT en de rest van de bibliotheek.

€699 / ontwikkelaar

sgcWebRTC

SDP-signalering, DTLS-SRTP, SCTP-datakanalen, audio- en videotracks, schermopname en bandbreedteschatting. Single-, Team- en Site-licenties.

€299 / ontwikkelaar

All-Access-bundel

Elk eSeGeCe-product voor een jaar, Delphi en .NET, inclusief sgcWebSockets Enterprise en sgcWebRTC, met Premium Support.

€1,059 / ontwikkelaar

Het proefinstallatieprogramma is per IDE-versie en bevat de WebRTC-componenten al, dus er is geen aparte download.

Bekijk de prijzen van sgcWebRTC

Zet een echte peer-verbinding achter je Delphi-app.

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

Laatste blogberichten

Bekijk alle berichten →

Je bekijkt nu de sgcWebRTC-weergave van eSeGeCe.

Toon me een andere kant →
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid