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
| Item | Details |
|---|---|
| Client SDKs | Web / H5, Android, iOS / macOS (Swift, Objective-C), Windows (C++), HarmonyOS, WeChat Mini Program |
| Server SDKs | Python (pip install srtc), Go, C (Linux / Windows, for servers, embedded and gateway devices); REST server API |
| Protocols | WebRTC; SIP / H.323 / RTSP / GB28181 devices via gateway |
| Codecs | Audio: G.711 / AAC / Opus. Video: H.264 / H.265 / VP8 / VP9 / AV1 / AVS3 |
| Resolution | Adaptive from 180p up to 4K |
| Latency | <400ms end-to-end |
| Loss resilience | Smooth with 30% video / 50% audio packet loss |
| Capacity | 1000+ concurrent talk streams per 16-core server (tested) |
| Deployment | Self-hosted: on-premises, private cloud, public cloud, hybrid, or air-gapped |
| Platforms | Linux servers on x86 or ARM; Docker-based install, with offline packages for air-gapped sites |
SDKs for every platform
| Platform | Language | Install | Docs |
|---|---|---|---|
| Web / H5 | TypeScript | npm i @seastart/srtc-web-sdk | Read the docs |
| Android | Kotlin / Java | implementation 'cn.seastart.rtc:rtc' | Read the docs |
| iOS / macOS (Swift) | Swift | SPM: github.com/seastart/srtc-swift-sdk | Read the docs |
| iOS (Objective-C) | Objective-C | pod 'RTCEngineKit' | Read the docs |
| HarmonyOS | ArkTS | ohpm: srtc-harmony.har | Read the docs |
| Windows | C++ | rtc-win-sdk (x86 / x64) | Read the docs |
| C SDK (Linux / Windows) | C | librtc.so / .a / .dll | Read the docs |
| Python (server-side AI) | Python | pip install srtc | Read the docs |
| Server API | REST | HTTPS + HMAC-SHA256 | Read the docs |
| WeChat Mini Program | JavaScript | npm i @seastart/srtc-wx-sdk | Read 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
Video
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