Рекомендации по потоковой потоковой передаче служб мультимедиа
Клиенты часто спрашивают, как они могут уменьшить задержку их потоковой передачи. В этой статье описаны рекомендации по достижению потоков с низкой задержкой, а также кодирования трансляций в реальном времени.
Заметка
Прежде чем продолжить чтение этой статьи, ознакомьтесь с статье о низкой задержке HLS (LL-HLS), чтобы понять низкую задержку с кодировкой динамических событий. Затем вернитесь к этому руководству, чтобы понять, что еще может повлиять на задержку потоковой передачи.
Существует множество факторов, определяющих сквозную задержку потока, помимо того, как закодирован носитель. Ниже приведены некоторые из них, которые следует рассмотреть.
Задержки на стороне кодировщика вкладов. Когда клиенты используют программное обеспечение кодирования, например OBS Studio, Wirecast или другие, для отправки потокового потока RTMP в службы мультимедиа. Параметры этого программного обеспечения влияют на сквозную задержку потоковой передачи.
Задержки в конвейере потоковой передачи в службах мультимедиа Azure
Производительность CDN
Алгоритмы буферизации видеопроигрыватель и сетевых условий на стороне клиента
Время подготовки
Кодировщик вкладов
Вы управляете параметрами параметров исходного кодировщика, прежде чем поток RTMP достигнет служб мультимедиа. Ниже приведены некоторые рекомендации по параметрам, которые дают наименьшую возможную задержку:
Выберите физический регион, ближайший к кодировщику вкладов, для учетной записи служб мультимедиа. Это обеспечит отличное сетевое подключение к учетной записи служб мультимедиа.
Используйте согласованный размер фрагмента. Рекомендуется размер GOP в 2 секунды. Значение по умолчанию для некоторых кодировщиков, таких как OBS, составляет 8 секунд. Убедитесь, что вы измените этот параметр.
Используйте кодировщик GPU, если программное обеспечение кодирования позволяет сделать это. Это позволит выгрузить работу ЦП на GPU.
Используйте профиль кодирования, оптимизированный для низкой задержки. Например, при использовании кодировщика Nvidia H.264 в OBS Studio может отображаться предустановка "нулевой задержки".
Отправка содержимого, которое не выше разрешения, чем то, что планируется потоковой передачи. Например, если вы используете 720p стандартных трансляций кодирования, отправьте поток, который уже имеет значение 720p.
Сохраняйте частоту кадров в 30fps или ниже, если не используется сквозные трансляции. Хотя мы поддерживаем входные данные 60 кадров в режиме реального времени, выходные данные трансляции кодирования по-прежнему не превышают 30 fps. Для низкой задержки HLSрекомендуется фиксированная частота кадров, а максимальная длительность кадра не должна превышать 0,5 секунды для оптимального взаимодействия.
Настройка динамического события Служб мультимедиа Azure
Ниже приведены некоторые конфигурации, которые помогут сократить задержку в нашем конвейере:
Используйте параметры потока с низкой задержкой для трансляций. Для параметров потока кодировки "Стандартный" (до 720p) и "Премиум" (до 1080p), если не требуется окно DVR до 6 часов или плавной потоковой передачи, используйте параметр задержки потока с низкой задержкой.
Рекомендуется выбрать выходные данные CMAF для воспроизведения HLS и DASH. Это позволяет совместно использовать одни и те же фрагменты для обоих форматов. Это повышает коэффициент попадания кэша при использовании CDN. Например:
Тип Формат Пример URL-адреса HLS CMAF format=m3u8-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-cmaf)
MPEG-DASH CMAF format=mpd-time-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-cmaf)
Если вы должны выбрать выходные данные TS, используйте соотношение упаковки HLS 1. Это позволяет упаковать только один фрагмент в один сегмент HLS. Вы не получите полные преимущества LL-HLS в собственных игроков Apple.
Оптимизация проигрывателя
При выборе и настройке видеопроигрыватель убедитесь, что вы используете параметры, оптимизированные для снижения задержки.
Службы мультимедиа поддерживают различные выходные данные протокола потоковой передачи — DASH, HLS с выходными данными TS и HLS с фрагментами CMAF. При использовании параметра потока LowLatencyV2
обязательно найдите проигрыватель, поддерживающий HLS с низкой задержкой (LL-HLS). В зависимости от реализации проигрывателя буферизация решений влияет на задержку, наблюдаемую средством просмотра. Плохие сетевые условия или алгоритмы по умолчанию, которые предпочитают качество и стабильность воспроизведения, могут привести к тому, что игроки решили буферировать больше содержимого заранее, чтобы предотвратить прерывания во время воспроизведения. Эти буферы до и во время сеансов воспроизведения будут добавлены в сквозную задержку.
При использовании проигрывателя мультимедиа Azure эвристики с низкой задержкой профиль оптимизирует проигрыватель, чтобы обеспечить наименьшую возможную задержку на стороне проигрывателя. Этот проигрыватель поддерживает только DASH, если он не используется в Safari на устройствах Apple.
Выбор и оптимизация CDN
Конечные точки потоковой передачи — это серверы-источники, которые предоставляют потоковое и потоковое содержимое VOD в CDN или непосредственно клиенту. Рекомендуется использовать сеть доставки содержимого (CDN) с экранированный источник, чтобы обеспечить эффективное доставку трафика для содержимого мультимедиа.
Мы рекомендуем использовать Azure CDN, предоставляемую Verizon (цен. категория "Стандартный" или "Премиум"). Мы оптимизированы для интеграции, чтобы клиент мог настроить эту сеть CDN с одним выбором на портале Azure. Не забудьте включить Origin Shield и оптимизацию потоковой передачи для конечной точки CDN при запуске конечной точки потоковой передачи.
У наших клиентов также есть хороший опыт привлечения собственного CDN. Убедитесь, что меры принимаются в CDN, чтобы защитить источник от чрезмерного трафика.
Вы также можете повысить производительность, настроив правила для профиля CDN. См. раздел Включение оптимизаций CDN.
Масштабирование конечной точки потоковой передачи
Заметка
конечной точки или источника потоковой передачи уровня "Премиум" обеспечивает большую гибкость и изоляцию для клиентов, добавляя или удаляя выделенные единицы потоковой передачи выделенных. Единица потоковой передачи
Хотя одновременно можно выполнять потоковую передачу нескольких трансляций одновременно с помощью одной конечной точки потоковой передачи, максимальное количество единиц потоковой передачи по умолчанию, необходимых для одной конечной точки потоковой передачи, равно 10. Вы можете открыть запрос в службу поддержки, чтобы запросить более 10 по умолчанию.
Определение необходимых единиц потоковой передачи уровня "Премиум"
Существует два шага, чтобы определить количество конечных точек потоковой передачи и необходимых единиц потоковой передачи:
Определите необходимый общий исходящий трафик.
Разделите общий исходящий трафик на 200, что является максимальным объемом Мбит/с каждой единицы потоковой передачи.
Определение общего исходящего трафика, необходимого
Определите общий исходящий трафик, необходимый с помощью следующей формулы.
Требуется общий исходящий трафик = среднее количество пропускной способности x число параллельных зрителей x процент, обрабатываемых конечной точкой потоковой передачи.
Давайте рассмотрим каждый из умножителей в свою очередь:
Средняя пропускная способность. Что такое средний
Для динамического события, которое включает кодировку:
Если вы не знаете, какой средняя пропускная способность будет, вы можете использовать наши лучшие скорости в качестве оценки. Наш верхней скорость составляет 5,5 Мб/с для 1080p закодированных трансляций, поэтому средняя скорость будет где-то около 3,5 Мб/с.
Просмотрите предустановку кодирования, используемую для кодирования трансляции, например предустановку AdaptiveStreaming(H.264). См. этот пример выходных данных .
Для динамического события, которое просто использует сквозную передачу и не кодирование:
- Проверьте лестницу скорости кодирования, используемую локальным кодировщиком.
Число одновременных зрителей. Сколько одновременных зрителей ожидается? Это может быть трудно оценить, но сделать все возможное на основе ваших данных клиента. Вы потоковая конференция в глобальную аудиторию? Планируете ли вы жить потоковую трансляцию для продажи набора продуктов вашим клиентам?
процент трафика, обрабатываемыйконечной точкой потоковой передачи. Это также может быть выражено как "процент трафика, не обрабатываемого CDN", так как это число, которое фактически входит в формулу. Итак, учитывая это, что такое разгрузка CDN, которую вы ожидаете? Если cdN, как ожидается, будет обрабатывать 90% динамического трафика, то в конечной точке потоковой передачи ожидается только 10% трафика. Число, используемое в формуле, равно .10, что является процентом трафика, ожидаемого в конечной точке потоковой передачи.
Определение количества единиц потоковой передачи уровня "Премиум", необходимых
единиц потоковой передачи Класса Premium = Средняя пропускная способность x # зрителей x Процент трафика, не обработанный CDN / 200 Мбит/с
Пример
Вы недавно выпустили новый продукт и хотите представить его вашим установленным клиентам. Вам нужна низкая задержка, так как вы не хотите расстраивать уже занятую аудиторию, поэтому вы будете использовать конечные точки потоковой передачи уровня "Премиум" и CDN.
У вас около 100 000 клиентов, но они, вероятно, не все будут смотреть ваше трансляции. Вы угадаете, что в лучшем случае только 1% из них будут присутствовать, что приводит ожидаемых параллельных зрителей к 1000.
число одновременных пользователей =1000
Вы решили, что вы собираетесь использовать службы мультимедиа для кодирования потокового потока и не будут использовать сквозную передачу. Вы не знаете, какая средняя пропускная способность будет, но вы знаете, что вы будете доставлять в 1080p (верхней скоростью 5,5 Мбит/с), поэтому ваш средняя пропускная способность, как оценивается, 3,5 Мбит/с для вычислений.
Средняя пропускная способность =3,5
Так как ваша аудитория распределена по всему миру, вы ожидаете, что CDN будет обрабатывать большинство (90%) динамического трафика. Поэтому конечные точки потоковой передачи класса Premium будут обрабатывать только 10% трафика.
Процент, обрабатываемый конечной точкой потоковой передачи =10% = 0,1
Используя приведенную выше формулу:
Общее количество исходящих данных, необходимых = среднее количество пропускной способности x одновременных зрителей x процента, обрабатываемых конечной точкой потоковой передачи.
общий исходящий трафик, необходимый = 3,5 x 1000 x 0,1
общий исходящий трафик, необходимый = 350 Мбит/с
Разделение общего исходящего трафика на 200 вы определяете, что требуется 1,75 единиц потоковой передачи premium.
единиц потоковой передачи уровня "Премиум", необходимых = общих исходящих данных, необходимых/200Mpbs
единиц потоковой передачи уровня "Премиум", необходимых = 1,75
Мы округлим это число до 2, давая нам 2 единицы необходимых.
Использование портала для оценки потребностей
Портал Azure поможет упростить вычисления. На странице потоковой передачи можно использовать калькулятор, предоставленный для просмотра предполагаемой аудитории при изменении средней пропускной способности, соотношения попаданий CDN и количества единиц потоковой передачи.
На странице учетной записи служб мультимедиа выберите конечные точки Steaming в меню.
Добавьте новую конечную точку потоковой передачи, выбрав Добавить конечную точку потоковой передачи.
Присвойте конечной точке потоковой передачи имя.
Выберите конечную точку потоковой передачи Premium для типа конечной точки потоковой передачи.
Так как вы только получаете оценку на этом этапе, не запускайте конечную точку потоковой передачи после создания. Выберите Нет.
Выберите Standard Verizon или Premium Verizon для ценовой категории CDN. Имя профиля изменится соответствующим образом. Оставьте имя так, как это для этого упражнения.
Для профиля CDN выберите Создать.
Выберите Создать. После развертывания конечной точки появится экран конечных точек потоковой передачи.
Выберите только что созданную конечную точку потоковой передачи. Экран конечной точки потоковой передачи будет отображаться с оценками охвата аудитории.
Параметр по умолчанию для конечной точки потоковой передачи с 1 единицей потоковой передачи показывает, что он, по оценкам, будет передаваться в 571 одновременных зрителей в 3,5 Мбит/с с использованием 90% CDN и 10% конечной точки потоковой передачи.
Измените процент источника исходящего трафика с 90% из кэша CDN на 0%. Калькулятор оценивает, что вы сможете передавать в 57 одновременных зрителей в 3,5 Мбит/с в 200 Мбит/с без CDN.
Теперь измените источник исходящего трафика
обратно на 90%. Затем измените единицы потоковой передачи на 2. Калькулятор оценивает, что вы сможете передавать данные в 1143 параллельных зрителей в 3,5 Мбит/с с 4000Mpbs с обработкой CDN 90% трафика.
Выберите Сохранить.
Вы можете запустить конечную точку потоковой передачи и попытаться отправить в нее трафик. Метрики в нижней части экрана будут отслеживать фактический трафик.
Синхронизация
Возможно, потребуется подготовить единицы потоковой передачи за 1 час до ожидаемого пикового использования, чтобы обеспечить готовность единиц потоковой передачи.
Получение справки и поддержки
Вы можете обратиться к службам мультимедиа с вопросами или следовать нашим обновлениям одним из следующих методов:
- Q & A
-
стек переполнения. Пометьте вопросы с
azure-media-services
. - @MSFTAzureMedia или использовать @AzureSupport для запроса поддержки.
- Откройте запрос в службу поддержки на портале Azure.