Kushal Timilsina
← Projects
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:

  1. Build Docker images → push to GHCR
  2. Integration tests against MinIO mock
  3. 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