Why Livetran?
- Fast & Lightweight: Built with Go for high performance and low resource usage
- Production Ready: Includes authentication, error handling, and observability
- Scalable: Automatic uploads to Cloudflare R2 for global content delivery
- Developer Friendly: Simple REST API with comprehensive webhook support
- Flexible: Supports both single-profile and adaptive bitrate (ABR) streaming
What’s in the Box?
Secure SRT Ingestion
Low-latency SRT protocol support with automatic port allocation. Handles network instability gracefully with built-in error recovery.
JWT Stream Keys
Time-limited JWT-based stream keys (2-hour expiration) ensure only authorized encoders can publish. Each stream gets a unique, cryptographically secure key.
HMAC-SHA256 API Security
All API requests are signed with HMAC-SHA256 to prevent unauthorized access. Your secret key never leaves your server.
RESTful API
Simple, predictable API endpoints for starting, stopping, and monitoring streams. JSON responses with clear error messages.
Real-time Webhooks
Receive instant notifications on stream status changes (READY, STREAMING, STOPPED) with public playlist URLs included.
FFmpeg HLS Transcoding
Automatic transcoding to HLS with configurable segment duration (4s default). Supports both single-profile and multi-variant ABR ladders (1080p/720p/480p).
Cloudflare R2 Integration
Automatic file watching and upload to R2 with retry logic. Files are uploaded as soon as they’re created, ensuring minimal latency.
OpenTelemetry Metrics
Optional metrics export for monitoring stream counts, status, and performance. Integrates with Prometheus, Grafana, and other observability tools.
Quick Start
- Configure Environment: Set up your
.envfile with R2 credentials and secrets - Start the Server: Run with Docker or locally with Go
- Start a Stream: Call the
/api/start-streamendpoint with your stream ID - Connect Your Encoder: Use the returned SRT URL in OBS or your streaming software
- Get Your Playlist: Receive the public HLS playlist URL via webhook
Architecture Overview
Livetran follows a simple, efficient architecture:- API Layer: REST endpoints handle stream lifecycle management
- Ingestion Layer: SRT listeners accept incoming streams on dynamically allocated ports
- Processing Layer: FFmpeg transcodes streams to HLS format in real-time
- Upload Layer: File watcher automatically uploads segments to Cloudflare R2
- Delivery Layer: HLS playlists and segments served via R2 public URLs
Ready to Get Started?
- New to Livetran? Start with the Introduction Guide to understand how everything works
- Ready to Deploy? Check out the Deployment Guide for production setup
- Need API Details? Browse the API Reference for endpoint documentation
- Setting Up Authentication? See the Authentication Guide for security configuration