Кодирование с учетом содержимого

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


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

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

Совет

Хотите создать эскизы, совместить два видео вместе, создать подклип видео или повернуть его (а также выполнить другие действия)? Пример кода для Служб мультимедиа можно найти на странице Примеры.

Обзор предустановки кодирования с учетом содержимого

Чтобы подготовить содержимое для доставки с помощью потоковой передачи с переменной скоростью, видеоданные необходимо закодировать на нескольких скоростях передачи (от высокой до низкой). Эта методика позволяет современным видеопроигрывателям на устройствах Apple iOS, Android, Windows и Mac использовать протоколы потоковой передачи, которые плавно передают поток содержимого без буферизации. Эти различные представления отображаемого размера (разрешения) и качества (скорость) позволяют проигрывателю выбрать лучшую версию видео, которую могут поддерживать текущие условия сети. Сеть может сильно отличаться от LTE, 4G, 5G, общедоступного Wi-Fi или домашней сети.

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

В идеальных условиях необходимо учитывать тип содержимого, которое вы кодируете. Используя эту информацию, вы можете настроить лестницу кодирования в соответствии со сложностью и движением исходного видео. Это означает, что для каждого размера дисплея (разрешения) в лестнице должна быть скорость, за пределами которой любое увеличение качества не воспринимается — кодировщик работает с этим оптимальным значением скорости.

Следующий уровень оптимизации, который можно выполнить, — это выбор разрешения на основе содержимого. Например, видео презентации PowerPoint с мелким текстом будет выглядеть размытым при кодировании строк ниже 720 пикселей по высоте. Кроме того, у вас, возможно, также имеются видеофайлы, в которых изменяются движение и сложность в зависимости от того, как они были сохранены и изменены. Это дает возможность настраивать и корректировать параметры кодирования для каждой сцены или кадра. Интеллектуальному кодировщику можно дать задание по оптимизации параметров кодирования для каждого кадра в видео.

Службы мультимедиа Microsoft Azure предоставляет предустановку Адаптивной потоковой передачи, которая частично решает проблему вариативности скорости и разрешения исходных видеороликов. Однако эта предустановка не анализирует исходное содержимое, чтобы определить, насколько оно является сложным или сколько в нем движений.

Предустановка кодирования с учетом содержимого улучшает более статичную предустановку кодирования "потоковая передача с переменной скоростью", добавляя логику, которая позволяет кодировщику искать оптимальное значение скорости для заданного разрешения, но не требует тщательного вычислительного анализа. Эта предустановка выводит уникальную "лестницу" MP4-файлов, выровненных по GOP, на основе исходного файла. С учетом исходного видео предустановка выполняет первоначальный быстрый анализ входного содержимого и использует результаты для определения оптимального количества уровней, скорости и разрешений, необходимых для предоставления высококачественной потоковой передачи с переменной скоростью. Эта предустановка особенно эффективна для видеороликов с низким и средним уровнями сложности, где выходные файлы характеризуются более низкой скоростью, чем более статичная предустановка потоковой передачи с переменной скоростью, но при этом имеют достаточно хорошее качество изображения для просмотра. В выходной папке будут содержаться несколько MP4 файлов с видео и звуком, готовыми для потоковой передачи.

Настройка параметров вывода

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

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

Поддерживаемые кодеки

Предустановленная кодировка для кодирования содержимого доступна для использования со следующими кодеками:

  • H.264
  • HEVC (H.265)

Технические сведения о предустановке с учетом содержимого

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

Кривая искажений скорости передачи (RD) с использованием PSNR

Рисунок 1. Кривая искажения скорости передачи (RD) с использованием метрики PSNR для источника с высокой сложностью

Кривая искажения скорости передачи (RD) с использованием VMAF

Рисунок 2. Кривая искажения скорости передачи (RD) с использованием метрики VMAF для источника с высокой сложностью

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

Кривая искажения скорости передачи с использованием PSNR

Рисунок 3. Кривая искажения скорости передачи с использованием PSNR для входных данных низкого качества (в 1080p)

Кривая искажения скорости передачи с использованием VMAF

Рисунок 4. Кривая искажения скорости передачи с использованием VMAF для входных данных низкого качества (в 1080p)

Примеры кодирования

Ознакомьтесь с обширным списком примеров кодирования.

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

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