2 min read
StreamHub-OTT Platform
Full-featured OTT streaming platform with admin-managed uploads, Encorastream-powered transcoding, S3 object storage, and adaptive bitrate streaming with real-time bandwidth-aware quality switching.
StreamingVideo EncodingDevOpsS3DockerHLS
Overview
StreamHub is a production-grade over-the-top (OTT) streaming platform engineered for performance, scalability, and operational simplicity. It provides a complete video pipeline — from admin upload through automated transcoding to client-side adaptive playback — on a Dockerised Linux infrastructure.
Key Features
Admin Dashboard
- Role-based authentication for content managers
- Drag-and-drop video upload with real-time progress
- Metadata management (titles, descriptions, posters, genres)
- Pipeline state machine:
uploaded → queued → transcoding → ready → error - View-count and bandwidth analytics
Transcoding Pipeline (Encorastream)
- Automated multi-resolution encoding: 360p, 480p, 720p, 1080p
- HLS segmentation with 6-second chunks and aligned GOP boundaries
- Parallel encoding with CPU-pinned container resources
- Integrity validation on upload — malformed files rejected before pipeline entry
S3 Object Storage
- Structured artefact layout per video (master playlist, variant playlists, segments)
- Server-side encryption at rest (SSE-S3)
- Lifecycle policies: 90-day transition to S3 Glacier
Adaptive Bitrate Streaming
- Client-side bandwidth detection via sliding-window throughput measurement
- Automatic quality switching within 2–3 seconds of bandwidth change
- Auto mode (default) vs. manual resolution override
- Buffer-free playback across 2G through fibre
Architecture
Admin Dashboard ──► Transcoding Pipeline ──► AWS S3 ──► HLS + ABR Client
▲ │
└──── PostgreSQL ────┘
(metadata, users, analytics)
- API Server: Node.js / Express
- Transcoding: Encorastream (Dedicated container, CPU-pinned)
- Database: PostgreSQL (content metadata, accounts, analytics)
- Queue: Redis with AOF persistence
- Reverse Proxy: Nginx with TLS termination and rate limiting
- Orchestration: Docker Compose with environment overlays
CI/CD
GitHub Actions pipeline:
- Build Docker images → push to GHCR
- Integration tests against MinIO mock
- Zero-downtime SSH deploy via compose pull/up
Technologies
- Runtime: Node.js, Express
- Video Engine: Encorastream, HLS
- Storage: AWS S3 (standard + Glacier lifecycle)
- Infrastructure: Docker, Docker Compose, Nginx
- Database: PostgreSQL, Redis
- CI/CD: GitHub Actions
- Caching: Redis queue, CloudFront CDN