Delphi 및 C++ Builder용 WebRTC 미디어 엔진 | sgcWebRTC

sgcWebRTC — Delphi 및 C++ Builder를 위한 WebRTC 미디어 엔진

브라우저나 웹뷰 없이 Delphi와 C++ Builder 애플리케이션에 실시간 오디오, 영상, 화면 공유, 데이터 채널을 추가합니다.

브라우저 / 웹뷰 불필요
Windows, Linux, macOS, iOS 및 Android
오디오 및 영상 통화
화면 공유
SCTP 데이터 채널
DTLS-SRTP 암호화
STUN / TURN / ICE 내장
적응형 비트레이트
하드웨어 H.264 인코딩
브라우저와 상호운용
전체 소스 코드
Delphi 및 C++ Builder

하나의 컴포넌트, 완전한 피어 연결

sgcWebRTC는 sgcWebSockets 위에 새로운 팔레트 컴포넌트를 추가하지 않습니다. 대신 동일한 TsgcRTCPeerConnection 클래스에서 W3C 형태의 나머지 기능을 활성화합니다. 시그널링, 연결, 암호화, 데이터 채널, 미디어가 모두 하나의 객체에 존재합니다.

수동, 브라우저 호환 시그널링

CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription, AddIceCandidate가 실제 SDP를 생성하고 처리하므로, 반대편 피어가 브라우저여도 문제없습니다. SDP는 이미 사용 중인 시그널링 채널을 통해 그대로 전달하면 됩니다.

ICE, STUN, TURN 연결

RTCOptions.ICEServers를 기준으로 트리클 또는 논트리클 ICE 수집을 수행하며, 직접 경로가 차단된 경우 STUN을 통한 서버 반사 후보와 TURN을 통한 중계 후보를 사용합니다. OnICECandidateOnConnectionStateChange가 전송 상태를 추적합니다.

DTLS-SRTP 암호화 전송

모든 세션은 WebRTC가 요구하는 방식으로 보호됩니다. 선정된 ICE 페어 위에서 이루어지는 DTLS 핸드셰이크가 SRTP 키를 도출하며, 연결상의 모든 RTP, RTCP, SCTP 패킷은 첫 번째 패킷부터 암호화됩니다.

SCTP 데이터 채널

CreateDataChannel은 SCTP-over-DTLS 위에서 순서 보장 또는 비보장, 신뢰성 또는 부분 신뢰성 채널(RFC 8831/8832)을 엽니다. Send, SendBytesOnMessage / OnMessageBinary 이벤트가 텍스트와 바이너리 페이로드를 전달합니다.

오디오, 영상, 화면 트랙

AddTrack은 Opus 또는 G.711 오디오 트랙, 혹은 VP8, H.264, Motion JPEG 영상 트랙을 연결합니다. SendPCMSendVideoFrame이 캡처한 미디어를 전송하며, OnAudioOnVideoFrame이 디코딩된 원격 트랙을 전달합니다.

대역폭 추정 및 복원력

Google Congestion Control 방식의 지연 기반 추정기가 회선 상태를 추적하고 영상 인코더의 목표 비트레이트를 조정합니다. RTCP NACK/PLI 재전송, RFC 4588 RTX, RED/ULPFEC로 뒷받침되며, 브라우저가 손실이 발생하는 네트워크에서 사용하는 것과 동일한 도구 모음입니다.

TsgcRTCPeerConnection

sgcWebRTC는 팔레트에 새로운 클래스를 추가하지 않습니다. sgcWebSockets Enterprise에 포함된 것과 동일한 TsgcRTCPeerConnection 컴포넌트이며, Enterprise가 이미 제공하는 ICE/TURN 연결 위에 SDP, SCTP, RTP, SRTP 기능이 활성화됩니다.

TsgcRTCPeerConnection

수동 SDP 시그널링, ICE/TURN 연결, DTLS-SRTP 암호화, SCTP 데이터 채널, RTP 오디오/영상 트랙을 하나의 컴포넌트에서 제공합니다. 재협상, ICE 재시작, W3C perfect-negotiation glare 규칙이 내장되어 있습니다.

컴포넌트 보기 →

전체 기능 매트릭스 보기 →

오퍼와 데이터 채널

ICE 서버를 설정하고 SDP 및 ICE 이벤트를 연결한 다음, 데이터 채널을 열고 오퍼를 생성합니다. Delphi와 C++ Builder에서 동일한 API를 사용합니다.

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");
}

sgcWebRTC가 구현하는 RFC

독자적인 전송 방식이 아닌, 표준 기반 미디어 엔진입니다.

RFC 8445 및 8489 — ICE / STUN

대화형 연결 설정(ICE)의 후보 수집 및 지명과, 그 기반이 되는 STUN 바인딩 요청입니다. TsgcICEClient를 통해 노출되며 TsgcRTCPeerConnection이 자동으로 사용합니다.

RFC 8656 — TURN

직접 경로나 서버 반사 경로에 도달할 수 없을 때 TsgcTURNClient를 통해 TURN 서버로 중계되는 후보입니다.

RFC 8827 및 5764 — DTLS / DTLS-SRTP

피어 연결을 인증하고 암호화된 미디어를 위한 SRTP 키 정보를 도출하는 DTLS 핸드셰이크입니다.

RFC 8831 및 8832 — SCTP 데이터 채널

DCEP 오픈 핸드셰이크를 사용하는 SCTP-over-DTLS이며, DTLS 역할에 따른 스트림 ID 홀짝 규칙과 순서 보장 / 부분 신뢰성 전달을 지원합니다.

RFC 3550 및 3711 — RTP / SRTP

오디오와 영상을 위한 실시간 전송과 그 암호화 프로필이며, RTCP 발신자/수신자 리포트, NACK, PLI, REMB 피드백을 포함합니다.

RFC 8829 — JSEP

CreateOffer / CreateAnswer / SetLocalDescription / SetRemoteDescription의 기반이 되는 오퍼/앤서 상태 머신으로, 재협상과 glare 해소를 포함합니다.

sgcWebSockets Enterprise의 애드온

sgcWebRTC는 애드온 형태로 라이선스가 제공됩니다. 모든 라이선스에는 전체 소스 코드, 1년간의 업데이트, 70% 갱신 할인이 포함됩니다.

sgcWebRTC

€299

Single, Team, Site 라이선스를 제공합니다. 전체 소스 코드가 포함됩니다.

  • TsgcRTCPeerConnection 미디어 엔진
  • SDP 시그널링, SCTP 데이터 채널, RTP 미디어
  • Delphi 및 C++ Builder
  • 전체 소스 코드
  • 1년 업데이트

★ sgcWebSockets Enterprise 필요

Standard 또는 Professional에서는 사용할 수 없습니다. All-Access 번들에도 포함되어 있습니다.

가격 보기 & 주문

Delphi의 WebRTC에 대해 자주 묻는 질문

Delphi 또는 C++ Builder 애플리케이션에 실시간 오디오, 영상, 데이터 채널을 추가하기 전에 개발자들이 묻는 질문들입니다.

기본적으로는 지원하지 않으며, 대부분의 서드파티 라이브러리는 시그널링 단계에서 멈춥니다. sgcWebSockets Enterprise는 ICE/TURN 연결을 위한 기본 TsgcRTCPeerConnection 컴포넌트를 제공하며, sgcWebRTC가 그 위에 미디어 엔진, 즉 수동 SDP 오퍼/앤서, DTLS-SRTP 암호화 전송, SCTP 데이터 채널, VP8/H.264 영상을 갖춘 Opus/G.711 오디오를 추가합니다. 그 결과 컴포넌트는 단순히 시그널링 메시지를 중계하는 데 그치지 않고, 브라우저와 실제로 피어 연결을 맺고 미디어를 주고받을 수 있습니다.
네, 가능합니다. CreateOffer / CreateAnswer가 표준 SDP를 생성하고 SetLocalDescription / SetRemoteDescription / AddIceCandidate가 이를 처리하며, 브라우저가 기대하는 JSEP 상태 머신(RFC 8829)을 그대로 따릅니다. SDP와 후보는 브라우저 애플리케이션이 시그널링 서버를 통해 하는 것과 똑같이, 자신만의 시그널링 채널을 통해 전달하면 됩니다.
네, 지원합니다. CreateDataChannel은 SCTP-over-DTLS(RFC 8831/8832) 위에서 RTCDataChannel을 열며, 순서 보장 또는 비보장, 완전 신뢰성 또는 재전송/수명 제한을 설정할 수 있습니다. 원격 피어가 채널을 열면 OnDataChannel이 발생하며, 채널이 열린 후에는 Send / SendBytes가 텍스트 또는 바이너리 페이로드를 전달합니다.
오디오는 Opus와 G.711(PCMU/PCMA)입니다. 영상은 libvpx 바인딩을 통한 VP8과, 운영체제 자체의 하드웨어 인코더를 통한 H.264(Windows의 Media Foundation, iOS/macOS의 VideoToolbox, Android의 MediaCodec)를 지원하며, Windows에서는 Motion JPEG 경로도 제공합니다. 플랫폼별 매트릭스는 기능 매트릭스를 참고하세요.
네, 미디어에 대해서는 끌 수 없습니다. 선정된 ICE 페어 위에서 DTLS-SRTP 핸드셰이크가 이루어지며, 연결상의 모든 RTP, RTCP, SCTP 패킷이 암호화됩니다. 브라우저가 강제하는 것과 동일한 필수 암호화 모델입니다.
아니요. Delphi에서 WebRTC를 구현하는 다른 여러 방식은 전체 브라우저 엔진(Chromium Embedded Framework 래퍼나 TWebBrowser/TEdgeBrowser 컨트롤)을 임베드하고, Pascal에서 그 JavaScript WebRTC 스택을 조작하는 방식으로 동작합니다. sgcWebRTC는 그렇지 않습니다. TsgcRTCPeerConnection은 운영체제 자체의 미디어 API(Windows의 Media Foundation, iOS/macOS의 VideoToolbox, Android의 MediaCodec)를 직접 호출하는 컴파일된 Object Pascal 코드이며, 프로세스 내에 브라우저 런타임, 임베드된 Chromium 바이너리, JavaScript 브리지가 전혀 없습니다. 덕분에 바이너리 크기가 작게 유지되고, 동일한 컴포넌트가 Android와 iOS는 물론, 브라우저가 전혀 설치되지 않은 헤드리스 서비스나 키오스크 기기에서도 실행됩니다.
sgcWebRTC는 sgcWebSockets의 지원 매트릭스를 따르며, Delphi 7부터 Delphi 13 Florence까지, 그리고 이에 대응하는 C++ Builder 버전을 지원합니다. 체험판 설치 프로그램은 IDE 버전별로 제공되며 WebRTC 컴포넌트가 이미 포함되어 있으므로, 별도로 다운로드할 필요가 없습니다.
미디어 엔진에는 없습니다. sgcWebSockets .NET 포트에는 고전적인 AppRTC 스타일의 브라우저 간 데모를 위한 WebRTC 시그널링 릴레이(TsgcWSProtocol_WebRTC_Server)가 포함되어 있지만, TsgcRTCPeerConnection에 해당하는 .NET 버전은 없습니다. sgcWebRTC 자체는 Delphi 및 C++ Builder 전용입니다.
sgcWebRTC는 sgcWebSockets Enterprise의 애드온이며, Standard나 Professional에서는 사용할 수 없습니다. All-Access 번들에도 포함되어 있습니다. Single, Team, Site 라이선스를 제공하며, 각각 전체 소스 코드와 1년간의 업데이트가 포함됩니다. 구매하기 전에 체험판을 다운로드해 직접 프로젝트에서 평가해 보세요.
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기

Delphi 앱 뒤에 진짜 피어 연결을 두세요

이미 사용하고 있는 언어로, 종단간 암호화된 오디오, 영상, 데이터 채널을 구현하세요.

eSeGeCe의 다른 제품

sgcWebRTC를 당사의 다른 Delphi, C++ Builder 및 .NET 컴포넌트 라이브러리와 함께 사용하세요.

sgcWebSockets

엔터프라이즈 WebSocket, HTTP/2, MQTT, AMQP, WebRTC 및 AI/LLM 컴포넌트입니다. sgcWebRTC는 sgcWebSockets Enterprise의 애드온입니다.

자세히 보기 →

sgcQUIC

Delphi, C++ Builder 및 .NET용 QUIC 및 HTTP/3 클라이언트 및 서버 컴포넌트입니다. sgcWebSockets Enterprise의 애드온입니다.

자세히 보기 →

sgcHTML

Delphi, C++ Builder 및 .NET용 89개의 데이터 연동 서버 사이드 HTML/UI 컴포넌트로, Bootstrap 5와 htmx를 지원합니다.

자세히 보기 →

sgcSign

엔터프라이즈 디지털 서명 — 10개 키 제공자와 21개 EU 국가 프로필을 갖춘 XAdES, PAdES, CAdES 및 ASiC.

자세히 보기 →

sgcOpenAPI

OpenAPI 3.0 파서 및 SDK 생성기입니다. 어떤 OpenAPI 사양이든 몇 초 만에 강력한 형식의 Delphi 클라이언트로 전환합니다.

자세히 보기 →

sgcBiometrics

Delphi 및 C++ Builder용 네이티브 Windows Hello, 지문 및 Windows Biometric Framework 컴포넌트입니다.

자세히 보기 →

sgcIndy

Delphi 7부터 13까지 지원하는 최신 TLS, IPv6, HTTP/2를 갖춘 업데이트된 Indy TCP/IP 컴포넌트입니다.

자세히 보기 →

sgcAI

AI, LLM, MCP 컴포넌트입니다. 채팅 컴포넌트 하나로 OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok, Mistral에 연결합니다.

자세히 보기 →

sgcMQ

네이티브 MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka, STOMP 클라이언트 컴포넌트이며, Core 런타임이 함께 포함되어 있습니다.

자세히 보기 →