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.
Aggiungi audio, video, condivisione dello schermo e canali dati in tempo reale alle tue applicazioni Delphi e C++ Builder, senza toccare un browser.
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.
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.
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.
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.
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.
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.
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.
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à.
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 →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");
}
Un motore media basato su standard, non un trasporto proprietario.
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.
Candidati relayed attraverso un server TURN quando un percorso diretto o server-reflexive non è raggiungibile, tramite TsgcTURNClient.
L'handshake DTLS che autentica la connessione peer e deriva il materiale di chiavi SRTP per i media crittografati.
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.
Trasporto in tempo reale per audio e video e il suo profilo crittografato, con report RTCP sender/receiver e feedback NACK, PLI e REMB.
La macchina a stati offer/answer dietro CreateOffer / CreateAnswer / SetLocalDescription / SetRemoteDescription, inclusa la rinegoziazione e la risoluzione del glare.
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%.
€299
Licenze Single, Team e Site disponibili. Codice sorgente completo incluso.
★ Richiede sgcWebSockets Enterprise
Non disponibile per Standard o Professional. Incluso anche nel bundle All-Access.
Vedi prezzi e ordinaLe domande che gli sviluppatori si pongono prima di aggiungere audio, video o canali dati in tempo reale a un'applicazione Delphi o C++ Builder.
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.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.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.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.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.Abbina sgcWebRTC alle nostre altre librerie di componenti per Delphi, C++ Builder e .NET.
Componenti Enterprise per WebSocket, HTTP/2, MQTT, AMQP e AI/LLM. sgcWebRTC è un componente aggiuntivo a sgcWebSockets Enterprise.
Scopri di più →Componenti client e server QUIC (RFC 9000) e HTTP/3 (RFC 9114) sul motore QUIC nativo di OpenSSL 3.5.
Scopri di più →89 componenti HTML/UI server-side data-aware per Delphi, C++ Builder e .NET, con Bootstrap 5 e htmx.
Scopri di più →Firme digitali Enterprise — XAdES, PAdES, CAdES e ASiC con 10 provider di chiavi e 21 profili per paese UE.
Scopri di più →Parser OpenAPI 3.0 e generatore di SDK. Trasforma qualsiasi specifica OpenAPI in un client Delphi fortemente tipizzato in pochi secondi.
Scopri di più →Componenti nativi per Windows Hello, impronta digitale e Windows Biometric Framework per Delphi e C++ Builder.
Scopri di più →Componenti Indy TCP/IP aggiornati con TLS moderno, IPv6 e HTTP/2, da Delphi 7 a 13.
Scopri di più →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ù →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ù →