Online Cinema (VOD) Platform Development
Video-on-demand platform — streaming service for content on demand. Technical requirements significantly higher than regular site: adaptive bitrate (ABR), content protection (DRM), CDN distribution, subtitle support, multi-platform.
Video stream architecture
Video pipeline:
Source (4K H.264/H.265 master file)
↓ Transcoding (FFmpeg / cloud encoder)
Multiple renditions:
1080p @ 8 Mbps
720p @ 4 Mbps
480p @ 2 Mbps
360p @ 1 Mbps
↓
HLS / DASH manifest (.m3u8 / .mpd)
↓
CDN (Cloudflare, AWS CloudFront, Fastly)
↓
Adaptive Bitrate Player (HLS.js, Shaka Player, Video.js)
Adaptive Bitrate Streaming (ABR): player automatically switches quality based on internet speed. HLS (m3u8) — for Safari + iOS (native support). MPEG-DASH — for Android and browsers via MSE.
Transcoding
Cloud-based: AWS Elastic Transcoder or AWS MediaConvert, Cloudflare Stream ($5 per 1000 minutes storage + delivery). Suits most platforms.
Self-hosted: FFmpeg + task queue. Transcoding task example:
ffmpeg -i input_4k.mp4 \
-map 0:v -map 0:a \
-vf "scale=1920:1080" -b:v 8000k -c:v libx264 -profile:v high \
-c:a aac -b:a 192k \
-hls_time 6 -hls_playlist_type vod \
-hls_segment_filename "segments/1080p_%04d.ts" \
"output_1080p.m3u8"
Each segment (6 seconds) uploaded to S3/CDN. Master playlist links all qualities.
DRM (Digital Rights Management)
For licensed content DRM mandatory:
- Widevine — Google, Chrome, Android support
- FairPlay — Apple, Safari + iOS required
- PlayReady — Microsoft, Edge, Windows
DRM providers: Axinom, EZDRM, BuyDRM. Scheme:
Player requests license → License Server checks auth → gives key
Encrypted segment decoded by key in CDM (Content Decryption Module)
DRM requires HTTPS, EME (Encrypted Media Extensions), DASH+CENC or HLS+AES.
Subtitles
Formats: VTT (WebVTT), SRT, TTML. Stored separately from video. Add to HLS manifest:
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=NO,
URI="subtitles_en.m3u8"
Auto-generation via Whisper (OpenAI) or AWS Transcribe.
Player
Video.js + plugins — mature solution, HLS, DASH, DRM support. Shaka Player (Google) — DASH + HLS, all DRM systems, good ABR. HLS.js — HLS only, no DRM. For unprotected content.
Catalog and metadata
Content organized:
- Movies (MPAA rating, genres, tags)
- Series → Seasons → Episodes
- Collections and curations
- Persons (actors, directors) — many-to-many links
Search: Elasticsearch for full-text by title, description, actors.
Business models
- SVOD (Subscription): subscription for full catalog access (Netflix-model)
- TVOD (Transactional): rent or buy individual film
- AVOD (Ad-supported): free with ads (VAST/VPAID integration)
- HVOD (Hybrid): part free, part subscription
Timeline
MVP (catalog with Cloudflare Stream/MUX, HLS player, basic subscription): 3–4 months. Full VOD platform with DRM, multi-platform apps, recommendations, view analytics: 8–14 months.







