Core engine

SRTC Engine

Self-hosted real-time audio & video engine with full-stack SDKs

A WebRTC-based RTC engine you can run entirely on your own servers. SDKs for web, mobile, desktop and server-side AI, resilient under packet loss, and open to deep customization and integration with your systems.

SRTC Engine is a real-time communication (RTC) engine built on WebRTC by Hangzhou Freewind Technology. It provides channels, audio/video publish & subscribe, screen sharing and cloud recording, with SDKs for Web, Android, iOS/macOS, Windows, HarmonyOS and WeChat Mini Programs, plus Python, Go and C SDKs for server-side agents. Video adapts from 180p up to 4K across H.264, H.265, VP8, VP9, AV1 and AVS3, at <400ms end-to-end latency. The whole stack is self-hosted: deploy it in your own data center, private or public cloud, or a fully air-gapped network.

At a glance

ItemDetails
Client SDKsWeb / H5, Android, iOS / macOS (Swift, Objective-C), Windows (C++), HarmonyOS, WeChat Mini Program
Server SDKsPython (pip install srtc), Go, C (Linux / Windows, for servers, embedded and gateway devices); REST server API
ProtocolsWebRTC; SIP / H.323 / RTSP / GB28181 devices via gateway
CodecsAudio: G.711 / AAC / Opus. Video: H.264 / H.265 / VP8 / VP9 / AV1 / AVS3
ResolutionAdaptive from 180p up to 4K
Latency<400ms end-to-end
Loss resilienceSmooth with 30% video / 50% audio packet loss
Capacity1000+ concurrent talk streams per 16-core server (tested)
DeploymentSelf-hosted: on-premises, private cloud, public cloud, hybrid, or air-gapped
PlatformsLinux servers on x86 or ARM; Docker-based install, with offline packages for air-gapped sites

SDKs for every platform

PlatformLanguageInstallDocs
Web / H5TypeScriptnpm i @seastart/srtc-web-sdkRead the docs
AndroidKotlin / Javaimplementation 'cn.seastart.rtc:rtc'Read the docs
iOS / macOS (Swift)SwiftSPM: github.com/seastart/srtc-swift-sdkRead the docs
iOS (Objective-C)Objective-Cpod 'RTCEngineKit'Read the docs
HarmonyOSArkTSohpm: srtc-harmony.harRead the docs
WindowsC++rtc-win-sdk (x86 / x64)Read the docs
C SDK (Linux / Windows)Clibrtc.so / .a / .dllRead the docs
Python (server-side AI)Pythonpip install srtcRead the docs
Server APIRESTHTTPS + HMAC-SHA256Read the docs
WeChat Mini ProgramJavaScriptnpm i @seastart/srtc-wx-sdkRead the docs

Features

1:1 and group calls

Private 1:1 calls and multi-party rooms at <400ms end-to-end latency.

SIP / H.323 / RTSP / GB28181 devices

Bring room systems (Poly, Cisco, Huawei, Yealink) and IP cameras into the same channel through the device gateway.

Adaptive bitrate & resolution

Resolution scales anywhere from 180p to 4K as the network allows, with simulcast and automatic hardware/software encoder selection.

Screen sharing

Share a full screen or a single window, with system audio.

Whiteboard

Laser pointer, pen, text and shapes with multi-user annotation.

In-channel messaging

Text, image and file messages to everyone or to specific members.

Cloud recording

Server-side or local recording with custom layouts, watermarks and online playback.

Live transcription

Real-time speech-to-text at 92%+ accuracy, with speaker separation and smart punctuation, for English, Chinese and mixed speech.

Voice masking & face check

Voice changing for privacy, plus face recognition.

Codecs

Every mainstream audio and video format, from WebRTC to legacy room systems

Audio

G.711AACOpus

Video

H.264H.265VP8VP9AV1AVS3
Adaptive resolution from 180p to 4K
Hardware / software encoder selection
Simulcast (high / low layers)

Quickstart

Join a channel, listen and publish with the Web SDK: Read the docs

import { SRTC, MicPresets, CameraPresets } from '@seastart/srtc-web-sdk'

const srtc = new SRTC({})
// token is issued by your own server
await srtc.join(token)

// Listen: subscribe to the channel audio mix
const mix = await srtc.subscribeRemoteAudioMixTrack()
await mix.startPlay()

// Publish: open mic and camera
const mic = srtc.createLocalMicTrack(MicPresets.music)
await mic.startCapture()
await srtc.publishLocalTrack(mic)

const cam = srtc.createLocalCameraTrack(CameraPresets['720p'])
await cam.startCapture()
cam.addPlayView(document.querySelector('#local-video'))
await srtc.publishLocalTrack(cam)

Why SRTC

Built in-house, end to end

Capture, processing, encoding, transport and rendering are all our own code, so nothing is a black box.

Resilient on bad networks

Smooth with 30% video and 50% audio packet loss; adapts down to 100 kbps.

AI noise suppression

LSTM + CNN mask model removes both steady and transient noise.

Self-hosted

Private, public or hybrid cloud; an edge gateway bridges internal and external networks.

Full-stack SDKs

Web, Android, iOS/macOS, Windows, HarmonyOS, WeChat Mini Programs, and embedded / gateway devices via the C SDK.

Broad codec support

G.711 / AAC / Opus audio; H.264 / H.265 / VP8 / VP9 / AV1 / AVS3 video.

Server-side SDKs

Python, Go and C SDKs to send and receive media from your backend: AI agents, transcription, recording.

Your data, your rules

Media, recordings and logs stay on servers you control, in the region you choose — easier data-residency and compliance reviews.

Ready to build?

Get a self-hosted trial, SDK access and hands-on help from our engineers