
Я пытаюсь создать потоковую передачу видео по протоколу HTTP, которая будет использовать определенный метод авторизации, описанный ниже, но я не уверен, как к этому подойти.
В настоящее время я использую пакет Motion, который позволяет легко пересылать видеопоток с локальной камеры через Интернет. Он также предлагает авторизацию с именем пользователя и паролем. Однако для моего варианта использования это не идеально.
Моя идея заключается в том, что я хочу иметь возможность по запросу предоставлять ссылку пользователю, которая позволит ему повторно получать доступ к потоку в течение некоторого ограниченного времени. В идеале это будет некий токен в форме параметра URL (https://www.link.com/stream?authId=FGJNDKD1256DD), что позволит любому человеку с этим токеном подключиться к потоку без какой-либо другой авторизации, но токен также истечет, скажем, через 1 час.
Кто-нибудь знает, как этого добиться? Мне нужно будет написать собственное веб-приложение с пользовательской генерацией токенов и обработкой авторизации или есть какой-нибудь веб-сервер, который предлагает такую авторизацию из коробки?
Спасибо
решение1
Чтобы достичь желаемого метода авторизации потокового видео, вам может потребоваться реализовать индивидуальное решение. Одним из возможных подходов может быть генерация уникального токена для каждого пользователя, запрашивающего доступ к потоку видео, и связывание этого токена со временем истечения срока действия.
Вот несколько шагов, которые вы можете предпринять для реализации этого:
- Генерация случайной строки токена: для генерации уникальной строки токена можно использовать библиотеку, например uuid в Python.
- Сохраните токен и время его истечения: Вы можете сохранить эту информацию в базе данных, например SQLite или MySQL. Каждый раз, когда пользователь запрашивает доступ к видеопотоку, вы можете проверить токен по базе данных, чтобы проверить его действительность и время истечения.
- Создайте пользовательскую конечную точку для потоковой передачи видео: Вы можете создать пользовательскую конечную точку, которая принимает токен в качестве параметра и проверяет его по базе данных. Если токен действителен и не истек, конечная точка может вернуть видеопоток. Если токен недействителен или истек, конечная точка может вернуть сообщение об ошибке.
- Обслуживание видеопотока: для обслуживания видеопотока можно использовать веб-сервер, например NGINX. NGINX поддерживает HTTP Live Streaming (HLS) и может обслуживать видео в различных форматах, включая MP4 и MPEG-TS.
В целом, этот подход потребует некоторого программирования и настройки базы данных, но он должен позволить вам предоставить конкретный метод авторизации, который вы ищете.
решение2
Просто дайте им уникальный идентификатор, такой как UUID или GUID, или какое-нибудь хэш-имя пользователя со значением времени + соли. Сохраните этот ключ при создании в таблице поиска с датой истечения срока действия.
URL-адрес передается в ключ, ключ ищется, если срок его действия истек, не учитывается.
Регулярно очищайте таблицу от ключей, срок действия которых истек.