Потоковая передача содержимого с помощью интеграции CDN

Логотип Служб мультимедиа версии 3


Предупреждение

Поддержка Служб мультимедиа Azure будет прекращена 30 июня 2024 г. Дополнительные сведения см. в руководстве по прекращению поддержки AMS.

Важно!

Так как Служба мультимедиа Azure прекращается с 30 июня 2024 г., а Azure CDN будет выведена из эксплуатации Azure CDN уровня "Стандартный" от Akamai 31 октября 2023 г., рекомендуется не создавать новые сети CDN для использования со Службами мультимедиа Azure. См. руководство по прекращению использования Служб мультимедиа Azure.

Azure CDN предлагает разработчикам глобальное решение для быстрой доставки больших объемов содержимого пользователям путем кэширования содержимого на стратегически расположенных физических узлах по всему миру.

CDN кэширует содержимое при потоковой передаче из конечной точки потоковой передачи Служб мультимедиа (источник) на каждый кодек, на каждый протокол потоковой передачи, на каждую скорость передачи, на каждый формат контейнера и на каждое шифрование или DRM. Для каждого сочетания протокола потоковой передачи, контейнера, формата, скорости передачи и шифрования будет существовать отдельный кэш CDN.

Это означает, что популярное содержимое будет передаваться непосредственно из кэша CDN (пока видеофрагмент находится в кэше). При просмотре в режиме реального времени содержимое с большой вероятностью кэшируется, так как обычно у вас есть много людей, наблюдающих за одними данными. С содержимым по запросу ситуация может оказаться немного сложнее, так как популярность разного контента будет различной. Если у вас есть миллионы непопулярных видеофайлов (всего 1–2 зрителя в неделю), но есть тысячи пользователей, просматривающих разные видео, CDN становится менее эффективной.

Необходимо также учитывать, как работает адаптивная потоковая передача. Все отдельные фрагменты видео кэшируются как отдельные сущности. Предположим, какое-то видео просматривается впервые. Если средство просмотра просмотрит лишь несколько секунд в нескольких местах, то только те фрагменты видео, которые просмотрит пользователь, будут закэшированы в CDN. При использовании адаптивной потоковой передачи можно применять от 5 до 7 разных скоростей передачи видео. Если один пользователь смотрит с одной скоростью передачи, а второй — с другой скоростью, то каждый из потоков кэшируется в сети CDN отдельно. Даже если два пользователя смотрят с одинаковой скоростью передачи, то могут использоваться различные протоколы. Все протоколы (HLS, MPEG-DASH, Smooth Streaming) кэшируются отдельно. Таким образом, каждая скорость и протокол кэшируются отдельно и кэшируются только запрашиваемые фрагменты видео.

За исключением тестовой среды, для конечных точек потоковой передачи уровня "Стандарт" и "Премиум" рекомендуется включить CDN. Каждый тип конечных точек потоковой передачи имеет разный поддерживаемый предел пропускной способности.

Трудно выполнить точный расчет максимального количества параллельных потоков, поддерживаемых конечной точкой потоковой передачи, так как при этом необходимо учитывать множество факторов. Сюда входит следующее.

  • Максимальная скорость, используемая для потоковой передачи
  • Поведение, выполняемое перед буферизацией и переключением проигрывателя. Игроки пытаются увеличить сегменты от источника и использовать скорость загрузки для расчета адаптивного переключения скорости передачи. Если конечная точка потоковой передачи близка к насыщению, то время отклика может измениться, а игрок начинает переключаться на более низкое качество. Поскольку это снижает нагрузку на проигрыватели конечных точек потоковой передачи, возврат к более высокому качеству создает нежелательные переключения.

В общем случае, чтобы оценить максимальное количество одновременных потоков, можно разделить максимальную пропускную способность конечной точки потоковой передачи и максимальной скорости передачи (предположим, что все игроки используют наибольшую скорость передачи). Например, можно использовать стандартную конечную точку потоковой передачи, которая ограничена 600 Мбит/с и максимальной скоростью передачи 3 Мбит/с. В этом случае при максимальной скорости передачи поддерживается примерно 200 параллельных потоков. Не забывайте также учесть требования к пропускной способности звука. Хотя поток звука может иметь скорость передачи всего 128 кбит/с, общий поток быстро возрастает, если умножить это значение на количество параллельных потоков.

В этом разделе обсуждается включение интеграции CDN. Кроме того, здесь объясняются концепции предварительной выборки (активное кэширование) и предварительная выборка CDN с Origin-Assist.

Рекомендации

  • Конечная точкаhostname и URL-адрес потоковой передачи остаются без изменений независимо от того, включена ли CDN.
  • Если необходима возможность проверки содержимого либо с CDN, либо без нее, то можно создать другую конечную точку потоковой передачи, для которой не включена CDN.

Включение интеграции Azure CDN

Важно!

Нельзя включить CDN для пробной или учебной учетной записи Azure.

Интеграция CDN включена во всех центрах обработки данных Azure, за исключением федерального правительства США и регионов Китая.

После того, как конечная точка потоковой передачи подготовлена с включенной сетью CDN, в Службах мультимедиа задается определенное время ожидания, прежде чем будет выполнено обновление DNS, чтобы подключить конечную точку потоковой передачи к конечной точке CDN.

Если позже вы захотите отключить или включить CDN, конечную точку потоковой передачи нужно перевести в состояние Остановлена. Включение интеграции Azure CDN и активация изменений по всем расположениям POP CDN может занять до двух часов. Но можно запустить собственную конечную точку потоковой передачи, не прерывая работу конечной точки потоковой передачи. После завершения интеграции поток доставляется из CDN. Во время подготовки конечная точка потоковой передачи перейдет в состояние запуска, и вы можете заметить снижение производительности.

При создании стандартной конечной точки потоковой передачи она по умолчанию настраивается со стандартным Verizon. Можно настроить поставщиков Premium Verizon или Standard Akamai через REST API.

Для конечных точек потоковой передачи уровня "Стандартный" интеграция служб мультимедиа Azure с Azure CDN реализуется на базе Azure CDN от Verizon. Конечные точки потоковой передачи уровня "Премиум" можно настроить с помощью Verizon уровня "Стандартный" или "Премиум Verizon". Стандартную конфигурацию Akamai можно настроить только с помощью REST API или клиентских пакетов SDK.

Примечание

Дополнительные сведения об Azure CDN см. в разделе Общие сведения о CDN.

Определение выполнения изменения DNS

Определить, было ли изменение DNS в конечной точке потоковой передачи (трафик направляется в Azure CDN), можно с помощью https://www.digwebinterface.com. Если в результатах отображаются azureedge.net доменные имена, трафик теперь указывает на CDN.

Предварительная выборка CDN с Origin-Assist

Кэширование CDN является реактивным процессом. Если CDN может предсказать следующий объект, который будет запрошен, CDN может заблаговременно запрашивать и кэшировать следующий объект. Таким образом можно добиться попадания в кэш всех (или большинства) объектов, что позволит повысить производительность.

Предварительная выборка стремится разместить объекты на "краю Интернета", ожидая, что объекты будут запрошены игроком неминуемо, тем самым сокращая время на доставку этого объекта игроку.

Чтобы достичь этой цели, конечная точка потоковой передачи (источник) и CDN должны во многих отношениях работать "плечом к плечу":

  • Источник Служб мультимедиа должен иметь "аналитику" (Origin-Assist), чтобы сообщить CDN, какой объект будет предварительной выборки.
  • CDN выполняет предварительную выборку и кэширование (часть предварительной выборки CDN). CDN также должна иметь "интеллект", чтобы:
    • укажите источнику, является ли это предварительная выборка или обычная выборка
    • обработка ответов 404
    • и способ избежать бесконечного цикла предварительной выборки

Преимущества

Ниже перечислены преимущества функции предварительной выборки CDN в Origin-Assist .

  • Предварительная выборка улучшает качество воспроизведения видео за счет предварительного позиционирования ожидаемых сегментов видео на границе во время воспроизведения, сокращая задержки в проигрывателе и время загрузки сегментов видео. Это позволяет ускорить запуск видео и сократить возможность возникновения повторений буферизации.
  • Эта концепция применима к общему сценарию CDN для источников и не привязана к носителю.
  • Компания Akamai добавила эту функцию в свой продукт Akamai Cloud Embed (ACE).

Примечание

Эта функция пока неприменима к Akamai CDN, интегрированной с конечной точкой потоковой передачи Служб мультимедиа. Однако она доступна для клиентов Служб мультимедиа, имеющих уже существующий контракт Akamai и требующих пользовательской интеграции между Akamai CDN и источником служб мультимедиа.

Принцип работы

Поддержка CDN для заголовков Origin-Assist CDN-Prefetch (как для прямой потоковой передачи видео, так и по запросу) доступна для клиентов, заключивших прямой договор с CDN Akamai. Функция предварительной выборки CDN для источников использует следующий обмен заголовками HTTP между CDN Akamai и источником Служб мультимедиа Azure:

Заголовок HTTP Значения Отправитель Получатель Назначение
CDN-Origin-Assist-Prefetch-Enabled 1 (по умолчанию) или 0 CDN Исходный домен Чтобы указать, что предварительная выборка CDN включена.
CDN-Origin-Assist-Prefetch-Path Пример
Fragments(video=1400000000,format=mpd-time-cmaf)
Исходный домен CDN Чтобы указать путь предварительной выборки для CDN.
CDN-Origin-Assist-Prefetch-Request 1 (запрос на предварительное получение) или 0 (обычный запрос) CDN Исходный домен Чтобы обозначить, что запрос от CDN является предварительной выборкой.

Чтобы увидеть часть процесса обмена заголовками в действии, можно попробовать выполнить следующие действия.

  1. С помощью Postman или cUrl отправьте запрос к источнику Служб мультимедиа на сегмент или фрагмент видео (аудио). Обязательно добавьте в запрос заголовок CDN-Origin-Assist-Prefetch-Enabled: 1.
  2. В ответе должен быть заголовок CDN-Origin-Assist-Prefetch-Path с относительным путем в качестве значения.

Поддерживаемые протоколы потоковой передачи

Функция Origin-Assist CDN-Prefetch поддерживает следующие протоколы потоковой передачи для трансляции в прямом эфире или по запросу:

  • HLS v3
  • HLS v4
  • HLS CMAF
  • DASH (CSF)
  • DASH (CMAF)
  • Потоковая передача Smooth Streaming

Часто задаваемые вопросы

  • Что делать, если URL-адрес пути для предварительной выборки недопустим и поэтому при выборке CDN возвращается ошибка 404?

    CDN закэширует только ответ 404 в течение 10 секунд (или другого настроенного значения).

  • Предположим, имеется видео по запросу. Если включена предварительная выборка CDN, то эта функция подразумевает, что после того, как клиент запросит первый сегмент видео, при предварительной выборке будет запущен цикл для предварительной выборки всех последующих сегментов видео с той же скоростью?

    Нет, предварительная выборка CDN выполняется только после инициированного клиентом запроса/ответа. Предварительная выборка CDN никогда не запускается предварительной выборкой, чтобы избежать зацикливания.

  • Всегда ли включена функция предварительной выборки CDN с Origin-Assist? Как ее выключить и включить?

    Эта возможность отключена по умолчанию. Клиенту необходимо ее включить через Akamai API.

  • При прямой потоковой передаче что произойдет с Origin-Assist, если следующий сегмент или фрагмент еще недоступен?

    В этом случае источник Служб мультимедиа не предоставит заголовок CDN-Origin-Assist-Prefetch-Path и предварительная выборка CDN не будет выполнена.

  • Как Origin-Assist CDN-Prefetch работает с фильтрами динамических манифестов?

    Эта функция работает независимо от фильтра манифеста. Когда следующий фрагмент выйдет за пределы окна фильтра, его URL-адрес по-прежнему будет находиться в необработанном клиентском манифесте, а затем возвращен как заголовок ответа на предварительную загрузку CDN. Поэтому CDN получит URL-адрес фрагмента, отфильтрованного из манифеста DASH/HLS/Smooth. Но проигрыватель никогда не выполнит запрос GET к CDN для получения этого фрагмента, поскольку этот фрагмент не включен в манифест DASH/HLS/Smooth, удерживаемый проигрывателем (проигрыватель не знает о существовании этого фрагмента).

  • Может ли быть выполнена предварительная выборка манифеста DASH MPD/плейлиста HLS/Smooth?

    Нет, URL-адрес DASH MPD, главного плейлиста HLS, переменного плейлиста HLS или манифеста Smooth не добавляется в заголовок предварительной выборки.

  • Являются ли URL-адреса предварительной выборки относительными или абсолютными?

    Хотя Akamai CDN допускает и те, и другие, источник Служб мультимедиа предоставляет только относительные URL-адреса для путей предварительной выборки, поскольку нет очевидных преимуществ использования абсолютных URL-адресов.

  • Работает ли эта функция с содержимым, защищенным с помощью DRM?

    Да, поскольку эта функция работает на уровне HTTP, она не расшифровывает и не анализирует сегменты и фрагменты. Неважно, зашифровано ли содержимое.

  • Работает ли эта функция с серверной вставкой рекламы (SSAI)?

    Она предназначена для оригинального (основного) содержимого (исходного видеосодержимого до вставки рекламы), поскольку SSAI не меняет метку времени исходного содержимого из источника Служб мультимедиа. Работает ли эта функция с содержимым рекламы, зависит от того, поддерживает ли источник Origin-Assist. Например, если содержимое рекламы также размещается в службах мультимедиа Azure (в том же или в отдельном источнике), то для содержимого рекламы также будет выполняться предварительная выборка.

  • Работает ли эта функция с содержимым UHD/HEVC?

    Да.

Практические руководства, учебники и примеры

-Включение оптимизаций - CDNВключение Origin Shield

Справка и поддержка

Вы можете обратиться к Службам мультимедиа с вопросами или следить за нашими обновлениями одним из следующих способов: