Инструкция по настройке
Для публикации потока необходимо указать ссылку на поток с протоколом RTMP или RTSP. После этого нужно выбрать протоколы раздачи: RTMP, HLS, MPEG-DASH, MSS или Low Latency Streaming.
Транскодирование потока
Включение данной услуги позволит избежать проблему буфферизации у зрителей с медленным интернетом и улучшит пользовательский опыт. Данную услугу нужно активировать для создания мультибитрейт потоков.
На выходе Вы получаете несколько потоков разного качества, что позволяет пользователю выбрать подходящий для него вариант вручную или оставить адаптивный поток, который настраивается автоматически в зависимости от ширины канала пользователя.
При включении на Ваш выбор предоставляется несколько пакетов для преобразования потока в несколько качеств.
Дополнительные настройки
SSL-сертификат
Можно активировать услугу, если необходимо использовать SSL-сертификат. Вы можете использовать существующий сертификат или выпустить новый.
Плеер
Активируйте данную услугу, если Вам необходим многофункциональный HTML5 плеер.
Авторизация
Локальная авторизация
Решение о доступе к потоку принимается средствами нашей сети на основе критериев, обозначенных владельцем контента. В данном случае авторизация запросов пользователей выполняется исключительно в сети CDN, внешние ресурсы не используются. В момент обращения пользователя к защищённому ресурсу владельцу контента необходимо сформировать специальную ссылку.
Пример:
http://example.a.trbcdn.net/md5(ycmYPfxHwqjnIM93o7JNOA,1387984517)/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-хэша с использованием IP-адреса пользователя в качестве одного из входных параметров:
md5 = base64_url(md5(SECRET/path/to/stream1.2.3.4expiretime))
Пример алгоритма расчета MD5-хэша, если IP-адрес не учитывается:
md5 = base64_url(md5(SECRET/path/to/streamexpiretime))
Обратите внимание
Доменная часть URI при вычислении хэша не используется!
Обратите внимание
При генерации MD5 в URL не должно быть символов в формате urlencode, а должны быть исходные символы: кириллица, пробелы, проценты и т.д. Запрашивать с этим хешом необходимо кодированный вариант URL.
Обратите внимание
Можно подписывать часть пути (например, для /path/to/file можно подписать сам файл, /path/to, /path)
Пример генерации ссылки:
Есть следующие входные данные:
- секретный ключ: zah5Mey9Quu8Ea1k
- IP-адрес пользователя: 1.2.3.4
- URI потока: http://example.a.trbcdn.net/path/to/stream/playlist.m3u8
Вычисляем время действия ссылки. В приведённом примере – неделя с момента генерации.
$ php -r 'print time() + (7 * 24 * 60 * 60) . "\n";' 1387984517
- Вычисляем хэш MD5 в формате Base64 for URL (путь указываем до плейлиста):
$ php -r 'print str_replace("=", "",strtr(base64_encode(md5("zah5Mey9Quu8Ea1k/path/to/stream1.2.3.41387984517", TRUE)), "+/", "-_")) . "\n";' ycmYPfxHwqjnIM93o7JNOA
Итоговая ссылка:
http://example.a.trbcdn.net/md5(ycmYPfxHwqjnIM93o7JNOA,1387984517)/path/to/stream/playlist.m3u8
Внимание!
Хэш MD5, вычисленный для HTTP, является базовым для данного ресурса. То есть, один и тот же хэш будет использован для ссылок на файл по протоколам HTTP, HTTPS несмотря на то, что URI для разных протоколов может немного отличаться.
При локальной авторизации контролируются следующие параметры:
- URI запрашиваемого потока. Проверяется, что ссылка была сформирована именно для этого потока.
- Секретный ключ. Проверяется, что ссылка сформирована именно владельцем контента.
- Время окончания действия ссылки (опционально). Вы можете отключить проверку, выбрав опцию "Не ограничивать по времени".
- IP-адрес пользователя (опционально). Проверяется, что поток запрошен именно с того IP-адреса, для которого была сформирована ссылка. Вы можете отключить проверку, выбрав опцию "Не учитывать IP адрес".
Внешняя авторизация
Внешняя авторизации предназначена для возможности ограничения доступа к потоку с произвольной логикой, описанной в вашем скрипте авторизации.
Решение о доступе к потоку принимается на основе ответа вашего скрипта, ссылку на который Вы указываете в личном кабинете при создании/редактировании ресурса.
Если от скрипта авторизации пришел ответ со статусом 200, то доступ к потоку разрешен. В противном случае - доступ запрещен.
Авторизационному скрипту передаются следующие заголовки:
Host
: содержит имя домена, для которого предназначен запрос;X-Request-URI
: содержит URI запрашиваемого потока;X-Forwarded-For
: содержит реальный IP-адрес пользователя, который запрашивает поток;X-Remote-Addr
: содержит IP-адрес пользователя, который запрашивает поток, или прокси-сервера.
DVR
Необходимо активировать эту опцию, если Вам нужно использовать функцию навигации по эфиру (DVR).
Запись потока
Активируйте эту функцию, если Вам нужно сохранить запись потока.
Домены, запросы с которых нужно разрешить (CORS)
CORS - совместное использование ресурсов между разными источниками — технология современных браузеров, которая позволяет предоставить веб-страницам доступ к ресурсам другого домена.
Вы можете выбрать из нескольких опций: разрешить для всех, запретить для всех, а также добавить список доверенных доменов.
Ограничения раздачи
Описание
В этом разделе Вы можете установить ограничения раздачи контента в зависимости от страны и региона, IP адреса, referer или User-Agent
Процесс конфигурации модуля
- Активируйте нужный Вам вид ограничения и выберите правило по умолчанию (запрещено или разрешено).
- Добавьте исключения из правила по умолчанию. Для гео ограничений также выберите правило для самого исключения. Таким образом Вы можете, например, запретить трафик для всей страны, при этом разрешить для отдельного региона.
- При необходимости задайте интервалы времени действия правила. Интервалы не должны пересекаться.
- Возможно добавить несколько различных правил каждого вида, при условии что их временные интервалы не пересекаются.