Moteur média WebRTC pour Delphi & C++ Builder | sgcWebRTC

sgcWebRTC — le moteur média WebRTC pour Delphi & C++ Builder

Ajoute l'audio, la vidéo, le partage d'écran et les canaux de données en temps réel à tes applications Delphi et C++ Builder, sans toucher à un navigateur.

Aucun navigateur / WebView requis
Windows, Linux, macOS, iOS & Android
Appels audio et vidéo
Partage d'écran
Canaux de données SCTP
Chiffrement DTLS-SRTP
STUN / TURN / ICE intégrés
Débit adaptatif
Encodage matériel H.264
Interopérable avec les navigateurs
Code source complet
Delphi & C++ Builder

Un seul composant, toute la connexion pair à pair

sgcWebRTC n'ajoute pas de nouveaux composants de palette au-dessus de sgcWebSockets : il débloque le reste de la surface conforme au W3C sur la même classe TsgcRTCPeerConnection — signalisation, connectivité, chiffrement, canaux de données et média vivent tous sur un seul objet.

Signalisation manuelle, compatible navigateur

CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription et AddIceCandidate construisent et consomment du vrai SDP, si bien que le pair en face peut être un navigateur. Tu transportes le SDP sur le canal de signalisation que tu as déjà.

Connectivité ICE, STUN et TURN

Collecte ICE trickle ou non-trickle sur RTCOptions.ICEServers, avec des candidats server-reflexive via STUN et des candidats relayés via TURN quand un chemin direct est bloqué. OnICECandidate et OnConnectionStateChange suivent le transport.

Transport chiffré DTLS-SRTP

Chaque session est sécurisée comme WebRTC l'impose : un handshake DTLS sur la paire ICE nommée dérive les clés SRTP, et chaque paquet RTP, RTCP et SCTP sur la connexion est chiffré dès le premier paquet.

Canaux de données SCTP

CreateDataChannel ouvre un canal ordonné ou non, fiable ou partiellement fiable (RFC 8831/8832) sur SCTP-over-DTLS. Send, SendBytes et les événements OnMessage / OnMessageBinary transportent des charges utiles texte et binaires.

Pistes audio, vidéo et écran

AddTrack attache une piste audio Opus ou G.711, ou une piste vidéo VP8, H.264 ou Motion JPEG ; SendPCM et SendVideoFrame poussent le média capturé, OnAudio et OnVideoFrame livrent la piste distante décodée.

Estimation de bande passante et résilience

Un estimateur basé sur le délai, dans l'esprit du Google Congestion Control, suit le lien et pilote le débit cible de l'encodeur vidéo, épaulé par la retransmission RTCP NACK/PLI, RTX RFC 4588 et RED/ULPFEC — la même boîte à outils qu'un navigateur utilise sur un réseau avec pertes.

TsgcRTCPeerConnection

sgcWebRTC n'ajoute pas de nouvelle classe à la palette. C'est le même composant TsgcRTCPeerConnection livré dans sgcWebSockets Enterprise, avec la surface SDP, SCTP, RTP et SRTP débloquée au-dessus de la connectivité ICE/TURN qu'Enterprise te donne déjà.

TsgcRTCPeerConnection

Signalisation SDP manuelle, connectivité ICE/TURN, chiffrement DTLS-SRTP, canaux de données SCTP et pistes audio/vidéo RTP sur un seul composant. La renégociation, le redémarrage ICE et la règle de perfect-negotiation du W3C pour la résolution des conflits sont intégrés.

Voir le composant →

Voir le détail complet des fonctionnalités →

Une offre, et un canal de données

Configure un serveur ICE, raccorde les événements SDP et ICE, ouvre un canal de données, puis crée l'offre. La même API en Delphi et 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");
}

Les RFC que sgcWebRTC implémente

Un moteur média basé sur des standards, pas un transport propriétaire.

RFC 8445 & 8489 — ICE / STUN

La collecte et la nomination de candidats Interactive Connectivity Establishment, et les requêtes de liaison STUN qui les sous-tendent. Exposé via TsgcICEClient et consommé automatiquement par TsgcRTCPeerConnection.

RFC 8656 — TURN

Candidats relayés via un serveur TURN quand un chemin direct ou server-reflexive n'est pas joignable, via TsgcTURNClient.

RFC 8827 & 5764 — DTLS / DTLS-SRTP

Le handshake DTLS qui authentifie la connexion pair à pair et dérive le matériel de clé SRTP pour le média chiffré.

RFC 8831 & 8832 — SCTP Data Channels

SCTP sur DTLS avec le handshake d'ouverture DCEP, la parité d'id de stream selon le rôle DTLS, et la livraison ordonnée ou partiellement fiable.

RFC 3550 & 3711 — RTP / SRTP

Le transport temps réel pour l'audio et la vidéo et son profil chiffré, avec les rapports d'émetteur/récepteur RTCP, et le feedback NACK, PLI et REMB.

RFC 8829 — JSEP

La machine à états offre/réponse derrière CreateOffer / CreateAnswer / SetLocalDescription / SetRemoteDescription, y compris la renégociation et la résolution des conflits.

Un complément à sgcWebSockets Enterprise

sgcWebRTC est proposé sous licence en tant que complément. Toutes les licences incluent le code source complet, 1 an de mises à jour et une réduction de 70% sur le renouvellement.

sgcWebRTC

€299

Licences Single, Team et Site disponibles. Code source complet inclus.

  • Moteur média TsgcRTCPeerConnection
  • Signalisation SDP, canaux de données SCTP, média RTP
  • Delphi & C++ Builder
  • Code source complet
  • 1 an de mises à jour

★ Nécessite sgcWebSockets Enterprise

Non disponible pour Standard ou Professional. Inclus aussi dans le pack All-Access.

Voir les tarifs & commander

WebRTC en Delphi, questions fréquentes

Les questions que se posent les développeurs avant d'ajouter de l'audio, de la vidéo ou des canaux de données en temps réel à une application Delphi ou C++ Builder.

Pas nativement, et la plupart des bibliothèques tierces s'arrêtent à la signalisation. sgcWebSockets Enterprise livre le composant de base TsgcRTCPeerConnection pour la connectivité ICE/TURN ; sgcWebRTC ajoute le moteur média par-dessus — offre/réponse SDP manuelle, transport chiffré DTLS-SRTP, canaux de données SCTP, et audio Opus/G.711 avec vidéo VP8/H.264 — si bien que le composant peut réellement ouvrir une connexion pair à pair avec un navigateur et échanger du média, pas seulement relayer des messages de signalisation.
Oui. CreateOffer / CreateAnswer construisent du SDP standard et SetLocalDescription / SetRemoteDescription / AddIceCandidate le consomment, en suivant la machine à états JSEP (RFC 8829) qu'attend un navigateur. Tu transportes le SDP et les candidats sur ton propre canal de signalisation, exactement comme une application navigateur le fait via son serveur de signalisation.
Oui. CreateDataChannel ouvre un RTCDataChannel sur SCTP-over-DTLS (RFC 8831/8832), ordonné ou non, fiable ou avec une limite de retransmission ou de durée de vie. OnDataChannel se déclenche pour un canal ouvert par le pair distant, et Send / SendBytes transportent des charges utiles texte ou binaires une fois le canal ouvert.
Audio : Opus et G.711 (PCMU/PCMA). Vidéo : VP8 via un binding libvpx, et H.264 via l'encodeur matériel propre au système d'exploitation — Media Foundation sous Windows, VideoToolbox sous iOS/macOS, MediaCodec sous Android — plus un chemin Motion JPEG sous Windows. Voir le détail des fonctionnalités pour la matrice des plateformes.
Oui, et cela ne peut pas être désactivé pour le média : un handshake DTLS-SRTP s'exécute sur la paire ICE nommée et chaque paquet RTP, RTCP et SCTP sur la connexion est chiffré, le même modèle de chiffrement obligatoire qu'impose un navigateur.
Non. Plusieurs autres approches de WebRTC en Delphi fonctionnent en embarquant un moteur de navigateur complet (un wrapper Chromium Embedded Framework ou un contrôle TWebBrowser/TEdgeBrowser) et en pilotant sa pile WebRTC JavaScript depuis Pascal. sgcWebRTC ne fait pas ça : TsgcRTCPeerConnection est de l'Object Pascal compilé qui appelle directement les API média du système d'exploitation (Media Foundation sous Windows, VideoToolbox sous iOS/macOS, MediaCodec sous Android), sans runtime navigateur, sans binaire Chromium embarqué et sans pont JavaScript dans le processus. Cela garde le binaire compact et permet au même composant de tourner sur Android et iOS, ainsi que dans des services headless ou des appareils kiosque sans aucun navigateur installé.
sgcWebRTC suit la matrice de support de sgcWebSockets, de Delphi 7 à Delphi 13 Florence ainsi que les versions correspondantes de C++ Builder. L'installateur d'essai est propre à chaque version de l'IDE et contient déjà les composants WebRTC, il n'y a donc aucun téléchargement séparé.
Pas pour le moteur média. Le portage .NET de sgcWebSockets inclut un relais de signalisation WebRTC (TsgcWSProtocol_WebRTC_Server) pour la démo classique navigateur-à-navigateur façon AppRTC, mais aucun équivalent .NET de TsgcRTCPeerConnection. sgcWebRTC lui-même est réservé à Delphi et C++ Builder.
sgcWebRTC est un complément de sgcWebSockets Enterprise — il n'est pas disponible pour Standard ou Professional — et il est aussi inclus dans le pack All-Access. Des licences Single, Team et Site sont disponibles, chacune avec le code source complet et un an de mises à jour. Télécharge la version d'essai pour l'évaluer dans ton propre projet avant d'acheter.
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement

Mets une vraie connexion pair à pair derrière ton appli Delphi

Audio, vidéo et canaux de données, chiffrés de bout en bout, depuis le langage que tu utilises déjà.

Autres produits eSeGeCe

Associe sgcWebRTC à nos autres bibliothèques de composants Delphi, C++ Builder et .NET.

sgcWebSockets

Composants WebSocket, HTTP/2, MQTT, AMQP et IA/LLM pour l'entreprise. sgcWebRTC est un complément de sgcWebSockets Enterprise.

En savoir plus →

sgcQUIC

Composants client et serveur QUIC (RFC 9000) et HTTP/3 (RFC 9114) sur le moteur QUIC natif OpenSSL 3.5.

En savoir plus →

sgcHTML

89 composants HTML/UI côté serveur orientés données pour Delphi, C++ Builder et .NET, avec Bootstrap 5 et htmx.

En savoir plus →

sgcSign

Signatures numériques pour l'entreprise — XAdES, PAdES, CAdES et ASiC avec 10 fournisseurs de clés et 21 profils pays de l'UE.

En savoir plus →

sgcOpenAPI

Parseur OpenAPI 3.0 et générateur de SDK. Transforme n'importe quelle spécification OpenAPI en client Delphi fortement typé en quelques secondes.

En savoir plus →

sgcBiometrics

Composants natifs Windows Hello, empreinte digitale et Windows Biometric Framework pour Delphi et C++ Builder.

En savoir plus →

sgcIndy

Composants Indy TCP/IP mis à jour avec TLS moderne, IPv6 et HTTP/2, de Delphi 7 à 13.

En savoir plus →

sgcAI

15 composants IA, LLM et MCP pour Delphi et C++ Builder. Un seul composant de chat atteint OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok et Mistral.

En savoir plus →

sgcMQ

Composants client MQTT 3.1.1 et 5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka et STOMP pour Delphi et C++ Builder.

En savoir plus →