sgcWebRTC — el Motor de Medios WebRTC para Delphi y C++ Builder
Añade audio, vídeo, uso compartido de pantalla y canales de datos en tiempo real a tus aplicaciones Delphi y C++ Builder, sin tocar un navegador.
Añade audio, vídeo, uso compartido de pantalla y canales de datos en tiempo real a tus aplicaciones Delphi y C++ Builder, sin tocar un navegador.
sgcWebRTC no añade nuevos componentes de paleta sobre sgcWebSockets — desbloquea el resto de la superficie con forma W3C en la misma clase TsgcRTCPeerConnection: señalización, conectividad, cifrado, canales de datos y medios, todo vive en un mismo objeto.
CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription y AddIceCandidate construyen y consumen SDP real, de modo que el par al otro lado puede ser un navegador. Tú transportas el SDP por el canal de señalización que ya tengas.
Recopilación ICE trickle o no trickle contra RTCOptions.ICEServers, con candidatos server-reflexive de STUN y candidatos retransmitidos de TURN cuando una ruta directa está bloqueada. OnICECandidate y OnConnectionStateChange siguen el transporte.
Cada sesión se protege como exige WebRTC: un handshake DTLS sobre el par ICE nominado deriva las claves SRTP, y cada paquete RTP, RTCP y SCTP de la conexión va cifrado desde el primer paquete.
CreateDataChannel abre un canal ordenado o desordenado, fiable o parcialmente fiable (RFC 8831/8832) sobre SCTP-sobre-DTLS. Send, SendBytes y los eventos OnMessage / OnMessageBinary mueven cargas de texto y binarias.
AddTrack adjunta una pista de audio Opus o G.711, o una pista de vídeo VP8, H.264 o Motion JPEG; SendPCM y SendVideoFrame envían los medios capturados, y OnAudio y OnVideoFrame entregan la pista remota decodificada.
Un estimador basado en retardo al estilo de Google Congestion Control monitoriza el enlace y ajusta la tasa de bits objetivo del codificador de vídeo, respaldado por retransmisión RTCP NACK/PLI, RTX de RFC 4588 y RED/ULPFEC, el mismo conjunto de herramientas que usa un navegador en una red con pérdidas.
sgcWebRTC no añade una nueva clase a la paleta. Es el mismo componente TsgcRTCPeerConnection que se incluye en sgcWebSockets Enterprise, con la superficie de SDP, SCTP, RTP y SRTP desbloqueada sobre la conectividad ICE/TURN que Enterprise ya te ofrece.
Señalización SDP manual, conectividad ICE/TURN, cifrado DTLS-SRTP, canales de datos SCTP y pistas de audio/vídeo RTP en un solo componente. Renegociación, reinicio de ICE y la regla de glare de perfect-negotiation de W3C vienen integrados.
Ver componente →Configura un servidor ICE, engancha los eventos de SDP e ICE, abre un canal de datos y luego crea la oferta. La misma API en Delphi y 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 motor de medios basado en estándares, no un transporte propietario.
Recopilación y nominación de candidatos de Interactive Connectivity Establishment, y las solicitudes de binding STUN que hay detrás. Expuesto a través de TsgcICEClient y consumido automáticamente por TsgcRTCPeerConnection.
Candidatos retransmitidos a través de un servidor TURN cuando no es alcanzable una ruta directa o server-reflexive, mediante TsgcTURNClient.
El handshake DTLS que autentica la conexión de pares y deriva el material de claves SRTP para el cifrado de los medios.
SCTP sobre DTLS con el handshake de apertura DCEP, paridad de id de stream según el rol DTLS, y entrega ordenada / parcialmente fiable.
Transporte en tiempo real para audio y vídeo y su perfil cifrado, con informes RTCP de emisor/receptor y retroalimentación NACK, PLI y REMB.
La máquina de estados de oferta/respuesta detrás de CreateOffer / CreateAnswer / SetLocalDescription / SetRemoteDescription, incluyendo la renegociación y la resolución de glare.
sgcWebRTC se licencia como complemento. Todas las licencias incluyen código fuente completo, 1 año de actualizaciones y un 70% de descuento en la renovación.
€299
Licencias Single, Team y Site disponibles. Código fuente completo incluido.
★ Requiere sgcWebSockets Enterprise
No disponible para Standard ni Professional. También incluido en el paquete All-Access.
Ver precios y comprarLas preguntas que hacen los desarrolladores antes de añadir audio, vídeo o canales de datos en tiempo real a una aplicación Delphi o C++ Builder.
TsgcRTCPeerConnection para la conectividad ICE/TURN; sgcWebRTC añade el motor de medios sobre él — oferta/respuesta SDP manual, transporte cifrado DTLS-SRTP, canales de datos SCTP, y audio Opus/G.711 con vídeo VP8/H.264 — de modo que el componente puede realmente abrir una conexión de pares con un navegador e intercambiar medios, no solo retransmitir mensajes de señalización.CreateOffer / CreateAnswer construyen SDP estándar y SetLocalDescription / SetRemoteDescription / AddIceCandidate lo consumen, siguiendo la máquina de estados JSEP (RFC 8829) que espera un navegador. Tú transportas el SDP y los candidatos por tu propio canal de señalización, igual que hace una aplicación de navegador a través de su servidor de señalización.CreateDataChannel abre un RTCDataChannel sobre SCTP-sobre-DTLS (RFC 8831/8832), ordenado o desordenado, fiable o con un límite de retransmisiones o de vida. OnDataChannel se dispara para un canal que el par remoto ha abierto, y Send / SendBytes mueven cargas de texto o binarias una vez que el canal está abierto.TWebBrowser/TEdgeBrowser) y manejando su pila JavaScript de WebRTC desde Pascal. sgcWebRTC no: TsgcRTCPeerConnection es Object Pascal compilado que llama directamente a las propias API de medios del sistema operativo (Media Foundation en Windows, VideoToolbox en iOS/macOS, MediaCodec en Android), sin runtime de navegador, sin binario de Chromium incrustado y sin puente JavaScript en el proceso. Eso mantiene el binario pequeño y permite que el mismo componente funcione en Android e iOS, y en servicios headless o dispositivos kiosco sin ningún navegador instalado.TsgcWSProtocol_WebRTC_Server) para el demo clásico de navegador a navegador al estilo AppRTC, pero no un equivalente .NET de TsgcRTCPeerConnection. sgcWebRTC en sí es solo para Delphi y C++ Builder.Combina sgcWebRTC con nuestras otras bibliotecas de componentes para Delphi, C++ Builder y .NET.
Componentes empresariales de WebSocket, HTTP/2, MQTT, AMQP e IA/LLM. sgcWebRTC es un complemento de sgcWebSockets Enterprise.
Más información →Componentes cliente y servidor de QUIC (RFC 9000) y HTTP/3 (RFC 9114) sobre el motor QUIC nativo de OpenSSL 3.5.
Más información →89 componentes HTML/UI del lado del servidor con vinculación a datos para Delphi, C++ Builder y .NET, con Bootstrap 5 y htmx.
Más información →Firmas digitales empresariales — XAdES, PAdES, CAdES y ASiC con 10 proveedores de claves y 21 perfiles por país de la UE.
Más información →Parser de OpenAPI 3.0 y generador de SDK. Convierte cualquier especificación OpenAPI en un cliente Delphi fuertemente tipado en segundos.
Más información →Componentes nativos de Windows Hello, huella dactilar y Windows Biometric Framework para Delphi y C++ Builder.
Más información →Componentes Indy TCP/IP actualizados con TLS moderno, IPv6 y compatibilidad con HTTP/2 para Delphi 7 a 13.
Más información →15 componentes de IA, LLM y MCP para Delphi y C++ Builder. Un solo componente de chat llega a OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok y Mistral.
Más información →Componentes cliente de MQTT 3.1.1 y 5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka y STOMP para Delphi y C++ Builder.
Más información →