Разработал приватную streaming-платформу для размещения видеоуроков и закрытого контента без Vimeo/YouTube и сторонних SaaS.
Система автоматически транскодирует загруженные видео в защищённый AES-128 HLS с адаптивным битрейтом через ffmpeg. Просмотр работает через кастомный плеер на hls.js + media-chrome с forensic watermark (имя пользователя + timestamp поверх видео).
Реализовал:
* загрузку и обработку MOV/MKV/MP4;
* ffmpeg worker с real-time прогрессом транскодинга;
* AES-128 encrypted HLS streaming;
* nginx auth_request защиту сегментов и ключей;
* per-user / per-video access control;
* expirable доступы;
* heartbeat-аналитику просмотра;
* forensic watermark против утечек;
* live-обновление статусов;
* кастомный video dashboard;
* автоматическое восстановление HLS playback при network/media ошибках.
Backend построен на Next.js 16 + TypeScript + SQLite + Drizzle ORM. Использовал ffmpeg, hls.js, nginx, systemd и Tailwind CSS.
Ключевые архитектурные решения:
* auth на уровне nginx вместо proxy-streaming;
* polling worker вместо Redis/RabbitMQ;
* zero-config SQLite deployment;
* sliding session refresh;
* sandboxed systemd units;
* автоматическая очистка source-файлов после транскодинга.
Результат: полностью self-hosted видео-платформа с контролем доступа, защитой контента и аналитикой просмотра без зависимости от внешних сервисов.
https://stream.kmsdev.tech