Разработал приватную 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