Для организации трансляции по протоколу MPEG-TS необходимо указать точки организации стыка Вашего потока с потоком через сервера 3data, для этого заполните форму "Опишите возможные точки организации стыка (город, датацентр)".
После этого нужно выбрать протоколы раздачи: RTMP, HLS, MPEG-DASH, MSS или Low Latency Streaming.
При включении данной опции на Ваш выбор предоставляется несколько пакетов для преобразования потока в несколько качеств воспроизведения видео.
Активируйте услугу, если Вам понадобится HTTPS протокол. HTTPS представляет собой расширение стандартного протокола HTTP для поддержки шифрования в целях повышения безопасности.
Можно активировать услугу, если необходимо использовать SSL-сертификат. Вы можете использовать существующий сертификат или выпустить новый.
Активируйте данную услугу, если Вам необходим многофункциональный HTML5 плеер.
Описание логики работы:
Авторизация запросов пользователей выполняется исключительно в сети CDN, внешние ресурсы не используются. Решение о доступе к потоку принимается средствами нашей сети на основе критериев, обозначенных владельцем контента:
В момент обращения пользователя к защищённому потоку владельцу контента необходимо сформировать специальную ссылку.
Пример ссылки с локальной авторизацией:
http://example.a.trbcdn.net/md5(HucJ8tJFjy97yuox2OycOQ,1704067200)/path/to/stream/playlist.m3u8
Ссылка содержит авторизационный параметр md5(<md5 hash>[,<expires>])
в пути:
<md5 hash>
— хэш MD5 в формате Base64 for URL, сгенерированный на основе секретного ключа, URI запрошенного потока, IP-адреса пользователя (опционально) и времени жизни ссылки (опционально);<expires>
— время окончания действия ссылки в формате POSIX time (необязательный параметр).При обращении к контенту с использованием сгенерированной ссылки, CDN вычисляет значение MD5 и сравнивает его с полученным. Если значение MD5 не совпадает, то пользователю возвращается ответ с кодом 403 Forbidden
(запрет на воспроизведение).
Если текущее время превышает значение <expires>
, то пользователю возвращается ответ с кодом 410 Gone
(целевой ресурс больше недоступен).
Алгоритм генерации MD5-хэша (<md5_hash>
) для подписи ссылок:
<secret_word><path_to_stream><ip><expire_time>
. Элементы <ip>
и/или <expire_time>
не добавляются в строку для подписи, если в настройках локальной авторизации указано Не учитывать IP адрес
и/или Не ограничивать по времени
.base64_url
через base64_url(md5(<строка для подписи>))
.<md5 hash>
, выполняя следующие замены в base64_url
:=
заменяем на пустую строку ''
+
заменяем на -
/
заменяем на _
<md5 hash>
.
|
Пример генерации ссылки:
Есть следующие входные данные:
zah5Mey9Quu8Ea1k
1.2.3.4
http://example.a.trbcdn.net/path/to/stream/playlist.m3u8
1704067200
Формируем строку для подписи <secret_word><path_to_stream><ip><expire_time>
. Допустим, что мы учитываем и IP адрес, и время окончания действия ссылки.
Тогда строка для подписи выглядит так: zah5Mey9Quu8Ea1k/path/to/stream1.2.3.41704067200
Формируем подпись <md5 hash>
:
Пример на PHP:
$ php -r 'print str_replace("=", "",strtr(base64_encode(md5("zah5Mey9Quu8Ea1k/path/to/stream1.2.3.41704067200", TRUE)), "+/", "-_")) . "\n";'
HucJ8tJFjy97yuox2OycOQ
Пример на Python:
#!/usr/bin/python3 import base64 import hashlib secret_word = 'zah5Mey9Quu8Ea1k' path = '/path/to/stream' ip_address = '1.2.3.4' expiration_timestamp = 1704067200 def generate_local_signature(secret_word, path, ip_address=None, timestamp=None): string_to_sign = f'{secret_word}{path}' if ip_address is not None: string_to_sign = f'{string_to_sign}{ip_address}' if timestamp is not None: string_to_sign = f'{string_to_sign}{timestamp}' hashed_string = hashlib.md5(string_to_sign.encode()).digest() decoded_base64_string = base64.b64encode(hashed_string).decode() local_signature = decoded_base64_string.replace('+', '-').replace('/', '_').replace('=', '') return local_signature print(generate_local_signature(secret_word, path, ip_address, expiration_timestamp)) # HucJ8tJFjy97yuox2OycOQ
Итоговая ссылка:
http://example.a.trbcdn.net/md5(HucJ8tJFjy97yuox2OycOQ,1704067200)/path/to/stream/playlist.m3u8
Внешняя авторизации предназначена для возможности ограничения доступа к потоку с произвольной логикой, описанной в вашем скрипте авторизации.
Решение о доступе к потоку принимается на основе ответа вашего скрипта, ссылку на который Вы указываете в личном кабинете при создании/редактировании ресурса.
Если от скрипта авторизации пришел ответ со статусом 200, то доступ к потоку разрешен. В противном случае - доступ запрещен.
Авторизационному скрипту передаются следующие заголовки:
Host
: содержит имя домена, для которого предназначен запрос;X-Request-URI
: содержит URI запрашиваемого потока;X-Forwarded-For
: содержит реальный IP-адрес пользователя, который запрашивает поток;X-Remote-Addr
: содержит IP-адрес пользователя, который запрашивает поток, или прокси-сервера.Необходимо активировать эту опцию, если Вам нужно использовать функцию навигации по эфиру (DVR).
Активируйте эту функцию, если Вам нужно сохранить запись потока.
CORS - совместное использование ресурсов между разными источниками — технология современных браузеров, которая позволяет предоставить веб-страницам доступ к ресурсам другого домена.
Вы можете выбрать из нескольких опций: разрешить для всех, запретить для всех, а также добавить список доверенных доменов.
В этом разделе Вы можете установить ограничения раздачи контента в зависимости от страны и региона, IP адреса, referer или User-Agent