sgcWebRTC 통화와 데이터를, 피어 투 피어로. 브라우저 없이.

sgcWebRTC는 Delphi와 C++ Builder를 위한 WebRTC 미디어 엔진이에요. 실시간 오디오 및 영상 통화, 화면 공유, SCTP 데이터 채널을 애플리케이션에 추가하세요. DTLS-SRTP로 암호화되며 모든 브라우저의 RTCPeerConnection과 상호운용돼요. 운영체제 자체의 미디어 API를 호출하는 컴파일된 Object Pascal이라서, 프로세스 안에 WebView도 JavaScript 브리지도 없어요.

  • Delphi
  • C++ Builder
  • Windows, Linux, macOS
  • iOS & Android
  • STUN / TURN / ICE
  • WebView 불필요
사용자의 시그널링 채널 WebSocket, HTTP, 무엇이든 SDP offer SDP answer + 트리클 ICE 후보 Delphi 앱 TsgcRTCPeerConnection 오디오 · Opus 영상 · H.264 데이터 채널 'chat' 프로세스에 WebView 없음 브라우저 또는 Delphi RTCPeerConnection OnAudio OnVideoFrame OnMessage JSEP, RFC 8829 DTLS-SRTP RTP 미디어 + SCTP 데이터 STUN 공인 주소 TURN 차단 시 중계 ICE 시그널링은 서버를 거치지만, 미디어는 피어 사이를 직접 오가요.
  • 1피어 연결 전체를 담당하는 컴포넌트
  • 5플랫폼: Windows, Linux, macOS, iOS, Android
  • 5코덱: Opus, G.711, VP8, H.264, Motion JPEG
  • 100%RTP, RTCP, SCTP 패킷이 암호화돼요
  • 0프로세스 안의 브라우저 또는 WebView
직접 확인하기

2분 만에 보는 sgcWebRTC.

Delphi에서 P2P 미디어와 데이터 채널을 다뤄요. STUN, TURN, ICE, RTCPeerConnection으로 브라우저와 네이티브를 이어요. 내레이션과 자막이 있어요. 재생 버튼을 누르기 전에는 아무것도 내려받지 않아요.

하나의 컴포넌트

피어 연결 전체를 하나의 객체에.

sgcWebRTC는 팔레트에 새 컴포넌트를 추가하지 않아요. sgcWebSockets Enterprise에 이미 포함된 동일한 TsgcRTCPeerConnection 클래스에서 W3C 형태의 나머지 기능을 열어 줘요. 시그널링, 연결, 암호화, 데이터 채널, 미디어예요.

브라우저 호환 시그널링

CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription 및 AddIceCandidate 가 실제 SDP를 만들고 처리해요. 재협상, ICE 재시작, W3C perfect-negotiation glare 규칙이 내장되어 있어요.

컴포넌트 보기 →

STUN, TURN, ICE

트리클 또는 논트리클 ICE 수집은 RTCOptions.ICEServers를 기준으로 수행해요. 직접 경로가 차단되면 STUN의 서버 반사 후보와 TURN의 중계 후보를 사용해요.

DTLS-SRTP 암호화

선정된 ICE 페어 위의 DTLS 핸드셰이크가 SRTP 키를 도출하며, 모든 RTP, RTCP, SCTP 패킷은 첫 번째 패킷부터 암호화돼요. 미디어에서는 끌 수 없어요. 브라우저가 강제하는 것과 같은 모델이에요.

오디오 및 영상 트랙

AddTrack 은 Opus 또는 G.711 오디오 트랙이나 VP8, H.264, Motion JPEG 영상 트랙을 연결해요. H.264는 플랫폼의 하드웨어 인코더를 사용해요. Media Foundation, VideoToolbox, MediaCodec이에요.

코덱 및 플랫폼 매트릭스 →

SCTP 데이터 채널

CreateDataChannel 은 순서 보장 또는 비보장, 신뢰성 또는 부분 신뢰성 채널(RFC 8831/8832)을 열어요. Send, SendBytes, OnMessage 및 OnMessageBinary 는 텍스트와 바이너리 페이로드를 전달해요.

적응형 비트레이트

Google Congestion Control 방식의 지연 기반 추정기가 영상 인코더의 목표 비트레이트를 조정하며, RTCP NACK와 PLI, RFC 4588 RTX, RED/ULPFEC가 뒷받침해요.

빠른 시작

오퍼와 데이터 채널.

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");
}
  1. STUN 또는 TURN 서버 지정RTCOptions.ICEServers에 ICE 서버를 추가해요. 후보는 이 서버들을 기준으로 트리클 방식이나 한꺼번에 수집돼요.
  2. 자체 채널로 SDP 전달OnLocalDescription은 오퍼 또는 앤서를, OnICECandidate는 각 후보를 넘겨줘요. 브라우저 애플리케이션과 똑같이 어떤 시그널링 서버로든 보내면 돼요.
  3. 피어 투 피어로 통신DTLS 핸드셰이크가 끝나면 데이터 채널이 열리고, 오디오와 영상 트랙이 암호화된 채로 피어 사이를 직접 흘러요.

이것은 교환의 한쪽 면이에요. 반대편, 시그널링 릴레이, 그 위의 미디어 트랙은 작업 가이드에 있어요.

피어 투 피어로 연결된 두 Delphi 앱

활용 시나리오

브라우저를 내장하지 않는 WebRTC.

Delphi의 다른 WebRTC 방식은 전체 브라우저 엔진을 내장하고 Pascal에서 그 JavaScript 스택을 조작해요. sgcWebRTC는 운영체제의 미디어 API를 직접 호출하므로 바이너리가 작게 유지되고, 브라우저가 전혀 설치되지 않은 환경에서도 같은 컴포넌트가 실행돼요.

Delphi 앱과 브라우저

표준 SDP와 JSEP 상태 머신(RFC 8829) 덕분에 네이티브 Delphi 또는 C++ Builder 클라이언트가 웹 페이지의 RTCPeerConnection을 호출할 수 있고, 반대도 가능해요.

Delphi 앱과 Delphi 앱

두 네이티브 애플리케이션이 오디오, 영상, 데이터 채널을 직접 주고받고, 시그널링만 서버를 거쳐요.

작업 가이드 읽기 →

모바일, 헤드리스, 키오스크

내장 Chromium 바이너리가 없으므로 같은 컴포넌트가 Android와 iOS, 그리고 브라우저가 설치되지 않은 헤드리스 서비스나 키오스크 장치에서도 실행돼요.

화면 공유와 원격 지원

Windows에서 데스크톱, 모니터, 창, 영역을 커서까지 캡처해 영상 트랙으로 보내고, 데이터 채널을 함께 사용할 수 있어요.

음성 및 영상 통화

Windows, Linux, Apple 플랫폼, Android의 네이티브 카메라와 마이크 캡처 백엔드가 트랙에 직접 공급하고, 렌더러 백엔드가 원격 영상을 보여줘요.

저지연 데이터 링크

데이터 채널만 따로 써서 채팅, 텔레메트리, 파일 전송, 게임 상태를 주고받을 수 있어요. 신뢰성과 순서는 채널마다 정해요.

라이선스

sgcWebSockets Enterprise의 애드온.

sgcWebRTC는 sgcWebSockets Enterprise가 이미 ICE와 TURN 연결과 함께 제공하는 TsgcRTCPeerConnection 컴포넌트에서 미디어 엔진을 열어 줘요. Standard나 Professional에서는 사용할 수 없어요. 모든 라이선스에는 전체 소스 코드와 1년간의 업데이트가 포함돼요.

sgcWebSockets Enterprise

기반이 되는 제품이에요. STUN, TURN, ICE 클라이언트, 기본 TsgcRTCPeerConnection, 그리고 WebSocket, HTTP/2, MQTT 등 라이브러리의 나머지가 들어 있어요.

€699 / 개발자

sgcWebRTC

SDP 시그널링, DTLS-SRTP, SCTP 데이터 채널, 오디오 및 영상 트랙, 화면 캡처, 대역폭 추정. Single, Team, Site 라이선스를 제공해요.

€299 / 개발자

All-Access 번들

1년 동안 eSeGeCe의 모든 제품을 제공해요. Delphi와 .NET, sgcWebSockets Enterprise와 sgcWebRTC가 포함되며 Premium Support가 함께해요.

€1,059 / 개발자

체험판 설치 프로그램은 IDE 버전별로 제공되며 WebRTC 컴포넌트가 이미 들어 있어서, 따로 내려받을 필요가 없어요.

sgcWebRTC 가격 보기

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

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

블로그 최신 소식

모든 글 보기 →

지금 eSeGeCe의 sgcWebRTC 관점을 보고 있어요.

다른 관점 보기 →
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기