sgcWebRTC Appels et données, en pair à pair. Sans navigateur intégré.

sgcWebRTC est le moteur média WebRTC pour Delphi et C++ Builder. Ajoute à tes applications des appels audio et vidéo en temps réel, le partage d'écran et des canaux de données SCTP, chiffrés en DTLS-SRTP et interopérables avec le RTCPeerConnection de n'importe quel navigateur. C'est de l'Object Pascal compilé qui appelle les API média du système d'exploitation, sans WebView ni pont JavaScript dans ton processus.

  • Delphi
  • C++ Builder
  • Windows, Linux, macOS
  • iOS & Android
  • STUN / TURN / ICE
  • Aucune WebView requise
TON CANAL DE SIGNALISATION WebSocket, HTTP, ce que tu veux offre SDP réponse SDP + candidats ICE en trickle Appli Delphi TsgcRTCPeerConnection audio · Opus vidéo · H.264 canal de données 'chat' aucune WebView dans le processus Navigateur ou Delphi RTCPeerConnection OnAudio OnVideoFrame OnMessage JSEP, RFC 8829 DTLS-SRTP RTP media + SCTP data STUN adresse publique TURN relais si bloqué ICE La signalisation passe par ton serveur. Les médias circulent directement entre les pairs.
  • 1Composant pour toute la connexion pair à pair
  • 5Plateformes : Windows, Linux, macOS, iOS et Android
  • 5Codecs : Opus, G.711, VP8, H.264 et Motion JPEG
  • 100%Des paquets RTP, RTCP et SCTP chiffrés
  • 0Navigateurs ou WebViews dans ton processus
Voir en action

Découvre sgcWebRTC en deux minutes.

Médias et canaux de données en pair à pair depuis Delphi : STUN, TURN, ICE et RTCPeerConnection, du navigateur au natif. Commentée, avec sous-titres. Rien ne se télécharge avant que tu appuies sur lecture.

Un seul composant

Toute la connexion pair à pair sur un seul objet.

sgcWebRTC n'ajoute pas de nouveaux composants à la palette. Il débloque le reste de la surface calquée sur le W3C du même composant TsgcRTCPeerConnection fourni avec sgcWebSockets Enterprise : signalisation, connectivité, chiffrement, canaux de données et médias.

Signalisation compatible navigateurs

CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription et AddIceCandidate construisent et consomment du vrai SDP. La renégociation, le redémarrage ICE et la règle de collision de la négociation parfaite du W3C sont intégrés.

Voir le composant →

STUN, TURN et ICE

Collecte ICE en trickle ou non, auprès de RTCOptions.ICEServers, avec des candidats server-reflexive obtenus par STUN et des candidats relayés par TURN quand le chemin direct est bloqué.

Chiffrement DTLS-SRTP

Une négociation DTLS sur la paire ICE retenue dérive les clés SRTP, et chaque paquet RTP, RTCP et SCTP est chiffré dès le premier. Impossible de le désactiver pour les médias, comme l'impose un navigateur.

Pistes audio et vidéo

AddTrack attache une piste audio Opus ou G.711, ou une piste vidéo VP8, H.264 ou Motion JPEG. H.264 utilise l'encodeur matériel de la plateforme : Media Foundation, VideoToolbox ou MediaCodec.

Matrice des codecs et plateformes →

Canaux de données SCTP

CreateDataChannel ouvre un canal ordonné ou non, fiable ou partiellement fiable (RFC 8831/8832). Send, SendBytes, OnMessage et OnMessageBinary transportent des données texte et binaires.

Débit adaptatif

Un estimateur basé sur le délai, dans le style de Google Congestion Control, pilote le débit cible de l'encodeur vidéo, avec l'appui de RTCP NACK et PLI, de RFC 4588 RTX et de RED/ULPFEC.

Démarrage rapide

Une offre et un canal de données.

Définis un serveur ICE, branche les événements SDP et ICE, ouvre un canal de données, puis crée l'offre. La même API en Delphi et 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. Pointe-le vers un serveur STUN ou TURNAjoute les serveurs ICE à RTCOptions.ICEServers. Les candidats sont collectés auprès d'eux, en trickle ou d'un seul coup.
  2. Fais passer le SDP par ton propre canalOnLocalDescription te remet l'offre ou la réponse, OnICECandidate chaque candidat. Envoie-les par n'importe quel serveur de signalisation, exactement comme une application de navigateur.
  3. Communique en pair à pairUne fois la négociation DTLS terminée, les canaux de données s'ouvrent et les pistes audio et vidéo circulent directement entre les pairs, chiffrées.

Ce n'est qu'un côté de l'échange. L'autre côté, le relais de signalisation et les pistes média par-dessus sont dans le guide par tâche.

Deux applis Delphi, en pair à pair

Où il s'intègre

WebRTC sans intégrer de navigateur.

D'autres approches de WebRTC en Delphi intègrent un moteur de navigateur complet et pilotent sa pile JavaScript depuis Pascal. sgcWebRTC appelle directement les API média du système d'exploitation, ce qui garde l'exécutable léger et permet au même composant de tourner là où aucun navigateur n'est installé.

Appli Delphi vers navigateur

Le SDP standard et la machine à états JSEP (RFC 8829) permettent à un client natif Delphi ou C++ Builder d'appeler le RTCPeerConnection d'une page web, et inversement.

Appli Delphi vers appli Delphi

Deux applications natives échangent directement audio, vidéo et canaux de données, seule la signalisation passant par ton serveur.

Lire le guide par tâche →

Mobile, sans interface et bornes

Sans binaire Chromium intégré, le même composant tourne sur Android et iOS, ainsi que dans des services sans interface ou des bornes sans navigateur installé.

Partage d'écran et assistance à distance

Capture le bureau, un écran, une fenêtre ou une région sous Windows, curseur compris, et diffuse-la comme piste vidéo avec un canal de données à côté.

Appels vocaux et vidéo

Des backends natifs de capture caméra et microphone sous Windows, Linux, les plateformes Apple et Android alimentent directement les pistes, et des backends de rendu affichent la vidéo distante.

Liaisons de données à faible latence

Utilise les canaux de données seuls pour le chat, la télémétrie, le transfert de fichiers ou l'état d'un jeu, avec fiabilité et ordre choisis par canal.

Licences

Une extension de sgcWebSockets Enterprise.

sgcWebRTC débloque le moteur média du TsgcRTCPeerConnection que sgcWebSockets Enterprise fournit déjà avec la connectivité ICE et TURN. Il n'est pas disponible pour Standard ni Professional. Chaque licence inclut le code source complet et un an de mises à jour.

sgcWebSockets Enterprise

La base sur laquelle il s'appuie : clients STUN, TURN et ICE, le TsgcRTCPeerConnection de base, plus WebSocket, HTTP/2, MQTT et le reste de la bibliothèque.

€699 / développeur

sgcWebRTC

Signalisation SDP, DTLS-SRTP, canaux de données SCTP, pistes audio et vidéo, capture d'écran et estimation de bande passante. Licences Single, Team et Site.

€299 / développeur

Bundle All-Access

Tous les produits eSeGeCe pendant un an, Delphi et .NET, sgcWebSockets Enterprise et sgcWebRTC inclus, avec support Premium.

€1,059 / développeur

L'installateur d'essai est propre à chaque version de l'IDE et contient déjà les composants WebRTC, il n'y a donc pas de téléchargement séparé.

Voir les tarifs de sgcWebRTC

Donne à ton appli Delphi une vraie connexion pair à pair.

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

Les derniers articles du blog

Voir tous les articles →

Tu vois la vue sgcWebRTC d'eSeGeCe.

Montre-moi un autre angle →
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