Motore Media WebRTC per Delphi e C++ Builder | sgcWebRTC

sgcWebRTC — il Motore Media WebRTC per Delphi e C++ Builder

Aggiungi audio, video, condivisione dello schermo e canali dati in tempo reale alle tue applicazioni Delphi e C++ Builder, senza toccare un browser.

Nessun Browser / WebView richiesto
Windows, Linux, macOS, iOS e Android
Chiamate audio e video
Condivisione schermo
Canali dati SCTP
Crittografia DTLS-SRTP
STUN / TURN / ICE integrati
Bitrate adattivo
Codifica H.264 hardware
Interoperabile con i browser
Codice sorgente completo
Delphi e C++ Builder

Un solo componente, l'intera connessione peer

sgcWebRTC non aggiunge nuovi componenti nella palette sopra sgcWebSockets: sblocca il resto della superficie in stile W3C sulla stessa classe TsgcRTCPeerConnection. Segnalazione, connettività, crittografia, canali dati e media vivono tutti su un solo oggetto.

Segnalazione manuale, compatibile con i browser

CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription e AddIceCandidate costruiscono e consumano SDP reale, così il peer dall'altra parte può essere un browser. Trasporti l'SDP sul canale di segnalazione che già possiedi.

Connettività ICE, STUN e TURN

Raccolta ICE trickle o non-trickle su RTCOptions.ICEServers, con candidati server-reflexive da STUN e candidati relayed da TURN quando un percorso diretto è bloccato. OnICECandidate e OnConnectionStateChange tengono traccia del trasporto.

Trasporto crittografato DTLS-SRTP

Ogni sessione è protetta nel modo richiesto da WebRTC: un handshake DTLS sulla coppia ICE nominata deriva le chiavi SRTP, e ogni pacchetto RTP, RTCP e SCTP sulla connessione è crittografato fin dal primo pacchetto.

Canali dati SCTP

CreateDataChannel apre un canale ordinato o non ordinato, affidabile o parzialmente affidabile (RFC 8831/8832) su SCTP-over-DTLS. Send, SendBytes e gli eventi OnMessage / OnMessageBinary spostano payload di testo e binari.

Tracce audio, video e schermo

AddTrack collega una traccia audio Opus o G.711, oppure una traccia video VP8, H.264 o Motion JPEG; SendPCM e SendVideoFrame inviano i media catturati, OnAudio e OnVideoFrame consegnano la traccia remota decodificata.

Stima della banda e resilienza

Uno stimatore basato sul ritardo, in stile Google Congestion Control, monitora il collegamento e guida il bitrate target dell'encoder video, supportato dalla ritrasmissione RTCP NACK/PLI, da RFC 4588 RTX e da RED/ULPFEC, lo stesso insieme di strumenti che un browser usa su una rete con perdita di pacchetti.

TsgcRTCPeerConnection

sgcWebRTC non aggiunge una nuova classe alla palette. È lo stesso componente TsgcRTCPeerConnection incluso in sgcWebSockets Enterprise, con la superficie SDP, SCTP, RTP e SRTP sbloccata sopra la connettività ICE/TURN che Enterprise ti offre già.

TsgcRTCPeerConnection

Segnalazione SDP manuale, connettività ICE/TURN, crittografia DTLS-SRTP, canali dati SCTP e tracce audio/video RTP su un solo componente. Rinegoziazione, riavvio ICE e la regola W3C di perfect-negotiation per il glare sono integrati.

Vedi il componente →

Vedi la matrice completa delle funzionalità →

Un'offerta e un canale dati

Imposta un server ICE, aggancia gli eventi SDP e ICE, apri un canale dati, poi crea l'offerta. La stessa API in Delphi e 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");
}

Gli RFC implementati da sgcWebRTC

Un motore media basato su standard, non un trasporto proprietario.

RFC 8445 e 8489 — ICE / STUN

Raccolta e nomina dei candidati Interactive Connectivity Establishment, e le richieste di binding STUN che ci sono dietro. Esposto tramite TsgcICEClient e consumato automaticamente da TsgcRTCPeerConnection.

RFC 8656 — TURN

Candidati relayed attraverso un server TURN quando un percorso diretto o server-reflexive non è raggiungibile, tramite TsgcTURNClient.

RFC 8827 e 5764 — DTLS / DTLS-SRTP

L'handshake DTLS che autentica la connessione peer e deriva il materiale di chiavi SRTP per i media crittografati.

RFC 8831 e 8832 — Canali dati SCTP

SCTP su DTLS con l'handshake di apertura DCEP, la parità dello stream id in base al ruolo DTLS, e la consegna ordinata o parzialmente affidabile.

RFC 3550 e 3711 — RTP / SRTP

Trasporto in tempo reale per audio e video e il suo profilo crittografato, con report RTCP sender/receiver e feedback NACK, PLI e REMB.

RFC 8829 — JSEP

La macchina a stati offer/answer dietro CreateOffer / CreateAnswer / SetLocalDescription / SetRemoteDescription, inclusa la rinegoziazione e la risoluzione del glare.

Un componente aggiuntivo a sgcWebSockets Enterprise

sgcWebRTC è concesso in licenza come componente aggiuntivo. Tutte le licenze includono codice sorgente completo, 1 anno di aggiornamenti e uno sconto di rinnovo del 70%.

sgcWebRTC

€299

Licenze Single, Team e Site disponibili. Codice sorgente completo incluso.

  • Motore media TsgcRTCPeerConnection
  • Segnalazione SDP, canali dati SCTP, media RTP
  • Delphi e C++ Builder
  • Codice sorgente completo
  • 1 anno di aggiornamenti

★ Richiede sgcWebSockets Enterprise

Non disponibile per Standard o Professional. Incluso anche nel bundle All-Access.

Vedi prezzi e ordina

WebRTC in Delphi, le domande frequenti

Le domande che gli sviluppatori si pongono prima di aggiungere audio, video o canali dati in tempo reale a un'applicazione Delphi o C++ Builder.

Non di serie, e la maggior parte delle librerie di terze parti si ferma alla segnalazione. sgcWebSockets Enterprise include il componente base TsgcRTCPeerConnection per la connettività ICE/TURN; sgcWebRTC aggiunge sopra di esso il motore media: offerta/risposta SDP manuale, trasporto crittografato DTLS-SRTP, canali dati SCTP, e audio Opus/G.711 con video VP8/H.264, così il componente può davvero aprire una connessione peer con un browser e scambiare media, non limitarsi a inoltrare messaggi di segnalazione.
Sì. CreateOffer / CreateAnswer costruiscono SDP standard e SetLocalDescription / SetRemoteDescription / AddIceCandidate lo consumano, seguendo la macchina a stati JSEP (RFC 8829) che un browser si aspetta. Trasporti l'SDP e i candidati sul tuo canale di segnalazione, esattamente come fa un'applicazione browser attraverso il proprio server di segnalazione.
Sì. CreateDataChannel apre un RTCDataChannel su SCTP-over-DTLS (RFC 8831/8832), ordinato o non ordinato, affidabile oppure con un limite di ritrasmissioni o di durata. OnDataChannel si attiva per un canale aperto dal peer remoto, e Send / SendBytes spostano payload di testo o binari una volta che il canale è aperto.
Audio: Opus e G.711 (PCMU/PCMA). Video: VP8 tramite un binding libvpx, e H.264 tramite l'encoder hardware nativo del sistema operativo (Media Foundation su Windows, VideoToolbox su iOS/macOS, MediaCodec su Android), più un percorso Motion JPEG su Windows. Consulta la matrice delle funzionalità per la matrice delle piattaforme.
Sì, e non può essere disattivata per i media: un handshake DTLS-SRTP viene eseguito sulla coppia ICE nominata e ogni pacchetto RTP, RTCP e SCTP sulla connessione è crittografato, lo stesso modello di crittografia obbligatoria imposto da un browser.
No. Diversi altri approcci a WebRTC in Delphi funzionano incorporando un intero motore browser (un wrapper Chromium Embedded Framework oppure un controllo TWebBrowser/TEdgeBrowser) e pilotando dal Pascal il suo stack WebRTC JavaScript. sgcWebRTC non lo fa: TsgcRTCPeerConnection è Object Pascal compilato che chiama direttamente le API media del sistema operativo (Media Foundation su Windows, VideoToolbox su iOS/macOS, MediaCodec su Android), senza alcun runtime browser, nessun binario Chromium incorporato e nessun ponte JavaScript nel processo. Questo mantiene piccolo il binario e permette allo stesso componente di funzionare su Android e iOS, e in servizi headless o dispositivi kiosk senza alcun browser installato.
sgcWebRTC segue la matrice di supporto di sgcWebSockets, da Delphi 7 a Delphi 13 Florence e le corrispondenti versioni di C++ Builder. L'installer di prova è specifico per versione di IDE e contiene già i componenti WebRTC, quindi non serve un download separato.
Non per il motore media. La porta .NET di sgcWebSockets include un relay di segnalazione WebRTC (TsgcWSProtocol_WebRTC_Server) per la classica demo browser-to-browser in stile AppRTC, ma nessun equivalente .NET di TsgcRTCPeerConnection. sgcWebRTC in sé è solo per Delphi e C++ Builder.
sgcWebRTC è un componente aggiuntivo a sgcWebSockets Enterprise, non è disponibile per Standard o Professional, ed è incluso anche nel bundle All-Access. Sono disponibili licenze Single, Team e Site, ciascuna con codice sorgente completo e un anno di aggiornamenti. Scarica la versione di prova per valutarlo nel tuo progetto prima dell'acquisto.
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso

Metti una vera connessione peer dietro alla tua app Delphi

Audio, video e canali dati, crittografati end-to-end, dal linguaggio che già usi.

Altri prodotti eSeGeCe

Abbina sgcWebRTC alle nostre altre librerie di componenti per Delphi, C++ Builder e .NET.

sgcWebSockets

Componenti Enterprise per WebSocket, HTTP/2, MQTT, AMQP e AI/LLM. sgcWebRTC è un componente aggiuntivo a sgcWebSockets Enterprise.

Scopri di più →

sgcQUIC

Componenti client e server QUIC (RFC 9000) e HTTP/3 (RFC 9114) sul motore QUIC nativo di OpenSSL 3.5.

Scopri di più →

sgcHTML

89 componenti HTML/UI server-side data-aware per Delphi, C++ Builder e .NET, con Bootstrap 5 e htmx.

Scopri di più →

sgcSign

Firme digitali Enterprise — XAdES, PAdES, CAdES e ASiC con 10 provider di chiavi e 21 profili per paese UE.

Scopri di più →

sgcOpenAPI

Parser OpenAPI 3.0 e generatore di SDK. Trasforma qualsiasi specifica OpenAPI in un client Delphi fortemente tipizzato in pochi secondi.

Scopri di più →

sgcBiometrics

Componenti nativi per Windows Hello, impronta digitale e Windows Biometric Framework per Delphi e C++ Builder.

Scopri di più →

sgcIndy

Componenti Indy TCP/IP aggiornati con TLS moderno, IPv6 e HTTP/2, da Delphi 7 a 13.

Scopri di più →

sgcAI

15 componenti AI, LLM e MCP per Delphi e C++ Builder. Un solo componente chat raggiunge OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok e Mistral.

Scopri di più →

sgcMQ

Componenti client MQTT 3.1.1 e 5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka e STOMP per Delphi e C++ Builder.

Scopri di più →