sgcWebRTC Połączenia i dane, peer to peer. Bez przeglądarki w środku.

sgcWebRTC to silnik mediów WebRTC dla Delphi i C++ Builder. Dodaj do swoich aplikacji połączenia audio i wideo w czasie rzeczywistym, udostępnianie ekranu i kanały danych SCTP, szyfrowane DTLS-SRTP i współpracujące z RTCPeerConnection w dowolnej przeglądarce. To skompilowany Object Pascal wywołujący natywne API mediów systemu operacyjnego, bez WebView i bez mostka JavaScript w twoim procesie.

  • Delphi
  • C++ Builder
  • Windows, Linux, macOS
  • iOS i Android
  • STUN / TURN / ICE
  • Bez WebView
TWÓJ KANAŁ SYGNALIZACJI WebSocket, HTTP, cokolwiek oferta SDP odpowiedź SDP + kandydaci trickle ICE Aplikacja Delphi TsgcRTCPeerConnection audio · Opus wideo · H.264 kanał danych 'chat' bez WebView w procesie Przeglądarka lub Delphi RTCPeerConnection OnAudio OnVideoFrame OnMessage JSEP, RFC 8829 DTLS-SRTP media RTP + dane SCTP STUN adres publiczny TURN przekaźnik, gdy zablokowane ICE Sygnalizacja przechodzi przez twój serwer. Media płyną prosto między peerami.
  • 1Komponent dla całego połączenia peer
  • 5Platform: Windows, Linux, macOS, iOS i Android
  • 5Kodeki: Opus, G.711, VP8, H.264 i Motion JPEG
  • 100%Pakietów RTP, RTCP i SCTP jest szyfrowanych
  • 0Przeglądarek lub kontrolek WebView w twoim procesie
Zobacz, jak działa

Zobacz sgcWebRTC w dwie minuty.

Media i kanały danych peer-to-peer z poziomu Delphi: STUN, TURN, ICE i RTCPeerConnection, od przeglądarki po aplikację natywną. Z lektorem i napisami. Nic nie jest pobierane, dopóki nie naciśniesz odtwarzania.

Jeden komponent

Całe połączenie peer na jednym obiekcie.

sgcWebRTC nie dodaje nowych komponentów palety. Odblokowuje resztę powierzchni API w stylu W3C na tej samej klasie TsgcRTCPeerConnection która wchodzi w skład sgcWebSockets Enterprise: sygnalizacja, łączność, szyfrowanie, kanały danych i media.

Sygnalizacja zgodna z przeglądarkami

CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription i AddIceCandidate budują i przetwarzają prawdziwe SDP. Renegocjacja, restart ICE i reguła glare perfect-negotiation z W3C są wbudowane.

Zobacz komponent →

STUN, TURN i ICE

Zbieranie kandydatów ICE w trybie trickle lub bez, na bazie RTCOptions.ICEServers, z kandydatami server-reflexive ze STUN i przekazywanymi przez TURN, gdy bezpośrednia ścieżka jest zablokowana.

Szyfrowanie DTLS-SRTP

Handshake DTLS na wynegocjowanej parze ICE wyprowadza klucze SRTP, a każdy pakiet RTP, RTCP i SCTP jest szyfrowany od pierwszego pakietu. W przypadku mediów nie da się tego wyłączyć, tak samo jak wymusza to przeglądarka.

Ścieżki audio i wideo

AddTrack dołącza ścieżkę audio Opus lub G.711 albo ścieżkę wideo VP8, H.264 lub Motion JPEG. H.264 korzysta ze sprzętowego kodera platformy: Media Foundation, VideoToolbox lub MediaCodec.

Macierz kodeków i platform →

Kanały danych SCTP

CreateDataChannel otwiera kanał uporządkowany lub nie, niezawodny lub częściowo niezawodny (RFC 8831/8832). Send, SendBytes, OnMessage i OnMessageBinary przenoszą ładunki tekstowe i binarne.

Adaptacyjny bitrate

Estymator oparty na opóźnieniach, w stylu Google Congestion Control, steruje docelowym bitrate kodera wideo, wspierany przez RTCP NACK i PLI, RFC 4588 RTX oraz RED/ULPFEC.

Szybki start

Oferta i kanał danych.

Ustaw serwer ICE, podłącz zdarzenia SDP i ICE, otwórz kanał danych, a następnie utwórz ofertę. Ten sam interfejs API w Delphi i 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. Wskaż serwer STUN lub TURNDodaj serwery ICE do RTCOptions.ICEServers. Kandydaci są zbierani na ich bazie, stopniowo lub wszyscy naraz.
  2. Przenieś SDP własnym kanałemOnLocalDescription przekazuje ci ofertę lub odpowiedź, a OnICECandidate każdego kandydata. Wyślij je przez dowolny serwer sygnalizacji, dokładnie tak jak robi to aplikacja w przeglądarce.
  3. Rozmawiaj peer to peerGdy handshake DTLS się zakończy, kanały danych się otwierają, a ścieżki audio i wideo płyną prosto między peerami, szyfrowane.

To jedna strona wymiany. Druga strona, przekaźnik sygnalizacji i ścieżki mediów na wierzchu opisane są w przewodniku zadaniowym.

Dwie aplikacje Delphi, peer to peer

Zastosowania

WebRTC bez osadzania przeglądarki.

Inne podejścia do WebRTC w Delphi osadzają pełny silnik przeglądarki i sterują jego stosem JavaScript z poziomu Pascala. sgcWebRTC wywołuje bezpośrednio API mediów systemu operacyjnego, dzięki czemu plik wykonywalny jest mały, a ten sam komponent działa tam, gdzie przeglądarka w ogóle nie jest zainstalowana.

Aplikacja Delphi do przeglądarki

Standardowe SDP i maszyna stanów JSEP (RFC 8829) pozwalają natywnemu klientowi Delphi lub C++ Builder zadzwonić do RTCPeerConnection na stronie internetowej, i odwrotnie.

Aplikacja Delphi do aplikacji Delphi

Dwie aplikacje natywne wymieniają audio, wideo i kanały danych bezpośrednio, a przez twój serwer przechodzi tylko sygnalizacja.

Przeczytaj przewodnik zadaniowy →

Urządzenia mobilne, bezgłowe i kioski

Brak osadzonego pliku Chromium oznacza, że ten sam komponent działa na Androidzie i iOS oraz w usługach bezgłowych i urządzeniach kioskowych bez zainstalowanej przeglądarki.

Udostępnianie ekranu i zdalne wsparcie

Przechwytuj pulpit, monitor, okno lub obszar w Windows, wraz z kursorem, i przesyłaj go jako ścieżkę wideo z kanałem danych obok.

Połączenia głosowe i wideo

Natywne backendy przechwytywania kamery i mikrofonu w Windows, Linux, na platformach Apple i w Androidzie zasilają ścieżki bezpośrednio, a backendy renderowania pokazują zdalne wideo.

Łącza danych o niskim opóźnieniu

Używaj kanałów danych samodzielnie do czatu, telemetrii, transferu plików lub stanu gry, z niezawodnością i kolejnością wybieranymi dla każdego kanału.

Licencjonowanie

Dodatek do sgcWebSockets Enterprise.

sgcWebRTC odblokowuje silnik mediów w klasie TsgcRTCPeerConnection którą sgcWebSockets Enterprise dostarcza już z łącznością ICE i TURN. Nie jest dostępny dla edycji Standard ani Professional. Każda licencja zawiera pełny kod źródłowy i rok aktualizacji.

sgcWebSockets Enterprise

Baza, na której się opiera: klienci STUN, TURN i ICE, bazowy TsgcRTCPeerConnection, a także WebSocket, HTTP/2, MQTT i reszta biblioteki.

€699 / programista

sgcWebRTC

Sygnalizacja SDP, DTLS-SRTP, kanały danych SCTP, ścieżki audio i wideo, przechwytywanie ekranu i szacowanie przepustowości. Licencje Single, Team i Site.

€299 / programista

Pakiet All-Access

Każdy produkt eSeGeCe na rok, Delphi i .NET, wraz z sgcWebSockets Enterprise i sgcWebRTC, z Premium Support.

€1,059 / programista

Instalator wersji próbnej jest przygotowany dla każdej wersji IDE i zawiera już komponenty WebRTC, więc nie ma osobnego pobierania.

Zobacz cennik sgcWebRTC

Postaw prawdziwe połączenie peer za swoją aplikacją Delphi.

Kanały audio, wideo i danych, szyfrowane end to end, z języka, którego już używasz.

Najnowsze wpisy na blogu

Zobacz wszystkie wpisy →

Oglądasz widok sgcWebRTC eSeGeCe.

Pokaż mi inne ujęcie →
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów