Secure Reliable Transport for professional broadcast workflows
SRT (Secure Reliable Transport) is an open-source video transport protocol that optimizes streaming performance across unpredictable networks. Originally developed by Haivision, it's now maintained by the SRT Alliance.
Technical details of SRT implementation
| Resolution | Video Bitrate | Buffer Size | SRT Latency |
|---|---|---|---|
| 720p30 | 2,500 - 4,000 Kbps | 5,000 - 8,000 Kbps | 2000ms |
| 720p60 | 4,500 - 6,000 Kbps | 9,000 - 12,000 Kbps | 2000ms |
| 1080p30 | 4,500 - 6,000 Kbps | 9,000 - 12,000 Kbps | 2500ms |
| 1080p60 | 6,000 - 9,000 Kbps | 12,000 - 18,000 Kbps | 3000ms |
| 4K30 | 13,000 - 20,000 Kbps | 26,000 - 40,000 Kbps | 4000ms |
Step-by-step setup for SRT streaming with OBS
srt://ingest.wave.inc:9998?streamid=your-stream-key,latency=2000latency parameter is in milliseconds. Higher values (2000-4000ms) provide more stability on unreliable networks.Output Mode: Advanced Encoder: x264 (CPU) or NVENC (NVIDIA GPU) Rate Control: CBR (Constant Bitrate) Bitrate: 6000 Kbps (for 1080p60) Keyframe Interval: 2 seconds Preset: veryfast (CPU) or Quality (GPU) Profile: high Tune: none
Base (Canvas) Resolution: 1920x1080 Output (Scaled) Resolution: 1920x1080 Downscale Filter: Lanczos (best quality) FPS: 60 or 30
Sample Rate: 48 kHz Channels: Stereo Audio Bitrate: 160 Kbps (or 128 Kbps)
SRT support across popular encoding software
| Encoder | SRT Support | Latency | Quality | Difficulty |
|---|---|---|---|---|
| OBS Studio | Native | 2-4s | Excellent | Easy |
| vMix | Native | 2-3s | Excellent | Easy |
| Wirecast | Native | 2-4s | Excellent | Medium |
| FFmpeg | Native | 1-2s | Excellent | Advanced |
| Streamlabs | Via Plugin | 3-5s | Good | Easy |
Cause: Firewall blocking UDP port 9998
Solution: Open UDP port 9998 in your firewall/router. For enterprise networks, work with IT to allow outbound SRT traffic.
Cause: SRT latency parameter set too high or network congestion
Solution: Reduce SRT latency parameter from 4000ms to 2000ms. Check network bandwidth usage and reduce video bitrate if needed.
Cause: Network instability or insufficient bandwidth
Solution: Increase SRT latency to 3000-4000ms for better recovery. Reduce video bitrate. Check for WiFi interference (use wired connection).
Cause: Unstable network or ISP throttling
Solution: Enable CBR (Constant Bitrate) in encoder. Increase SRT latency buffer. Contact ISP to ensure no throttling on UDP traffic.
Real-world SRT streaming performance metrics
import { WaveClient } from '@wave/api-client';
import { DesignTokens, getContainer, getSection } from '@/lib/design-tokens';
const wave = new WaveClient({ apiKey: 'wave_live_xxxxx' });
// Create SRT stream with custom configuration
const stream = await wave.streams.create({
title: 'Professional Broadcast',
protocol: 'srt',
srt: {
latency: 2000, // 2 seconds
passphrase: 'secure-password-123',
mode: 'listener', // or 'caller'
pbkeylen: 16, // AES-128 (or 32 for AES-256)
maxbw: -1, // unlimited bandwidth
inputbw: 0, // auto-detect
oheadbw: 25 // 25% overhead for recovery
},
recording: { enabled: true }
});
console.log('SRT URL:', stream.ingest.srt.url);
console.log('Stream ID:', stream.ingest.srt.streamid);
console.log('Full URL:', `${stream.ingest.srt.url}?streamid=${stream.ingest.srt.streamid},latency=2000`);
// Monitor stream health
const health = await wave.streams.getHealth(stream.id);
console.log('Packet Loss:', health.srt.packetLoss);
console.log('RTT:', health.srt.rtt);
console.log('Bandwidth:', health.srt.bandwidth);