Кодирование видео и аудио с помощью Служб мультимедиа
Предупреждение
Поддержка Служб мультимедиа Azure будет прекращена 30 июня 2024 г. Дополнительные сведения см. в руководстве по прекращению поддержки AMS.
Совет
Хотите создать эскизы, совместить два видео вместе, создать подклип видео или повернуть его (а также выполнить другие действия)? Пример кода для Служб мультимедиа можно найти на странице Примеры.
Термин "кодирование" в Службах мультимедиа применяется к процессу преобразования файлов, содержащих цифровые видео и (или) звук, из одного стандартного формата в другой, с целью (а) уменьшения размера файлов и (б) создания формата, совместимого с широким спектром устройств и приложений. Этот процесс также называется сжатием видео или перекодировкой. Дополнительные сведения о концепциях см. в ст. Сжатие данных и Что такое кодирование и перекодирование?
Видеоролики обычно доставляются на устройства и приложения путем последовательного скачивания или потоковой передачи с адаптивной скоростью.
Важно!
В Службах мультимедиа не выставляются счета за отмененные задания, вызвавшие ошибки. Например, задание, которое достигло времени выполнения 50 % и было отменено, не оплачивается на 50 % минут выполнения задания. Вы платите только за завершенные задания.
- Для доставки с помощью последовательного скачивания можно использовать службы мультимедиа Azure для преобразования файла цифрового мультимедиа (мезонин) в MP4-файл, который содержит видео, закодированное с помощью кодека H. 264, и звук, закодированный с помощью кодека AAC. Этот MP4-файл записывается в ресурс в учетной записи хранения. Для непосредственного скачивания файла можно использовать API или пакеты SDK службы хранилища Azure (например, REST API хранилища или пакет SDK для .NET). Если вы создали выходной ресурс с заданным именем контейнера в хранилище, используйте это расположение. В противном случае можно использовать API Служб мультимедиа для вывода списка URL-адресов контейнеров ресурса.
- Чтобы подготовить содержимое для доставки с помощью потоковой передачи с адаптивной скоростью, мезонинный файл необходимо закодировать на несколько скоростей передачи (от высокой до низкой). Чтобы обеспечить корректные изменения качества, разрешение видео уменьшается по мере понижения скорости. В результате получается так называемая лестница кодирования — таблица разрешений и скоростей (см. раздел об автоматическом создании схемы передачи с адаптивной скоростью или используйте предустановку кодирования с учетом содержимого). Службы мультимедиа можно использовать для кодирования мезонинных файлов для нескольких скоростей. При этом вы получите набор MP4-файлов и связанных файлов конфигурации потоковой передачи, записанные в ресурс в учетной записи хранения. Затем можно использовать динамическую упаковку Служб мультимедиа для доставки видео через протоколы потоковой передачи, такие как MPEG-DASH и HLS. Для этого необходимо создать указатель потоковой передачи и построить URL-адреса потоковой передачи, соответствующие поддерживаемым протоколам, которые затем можно передать на устройства или приложения в зависимости от их возможностей.
Преобразования и задания
Для кодирования с помощью Служб мультимедиа версии 3 необходимо создать преобразование и задание. Преобразование определяет инструкции для параметров кодирования и выходных данных, а задание является экземпляром инструкций. Дополнительные сведения см. в статье Преобразования и задания.
При кодировании с помощью Служб мультимедиа используются предустановки. На их основе кодировщик обрабатывает входные файлы мультимедиа. В Службах мультимедиа версии 3 для кодирования файлов используется стандартный кодировщик. Например, можно указать разрешение видео и число аудиоканалов для закодированного содержимого.
Можно быстро приступить к работе, используя одну из встроенных предустановок, основанных на передовых отраслевых рекомендациях. Можно также создать пользовательскую предустановку в соответствии с требованиями сценария или устройства.
Начиная с января 2019 г. при кодировании с помощью стандартного кодировщика для создания MP4-файлов создается и добавляется в выходной ресурс новый MPI-файл. Этот MPI-файл предназначен для повышения производительности динамической упаковки и потоковой передачи.
Примечание
Не следует изменять или удалять MPI-файл, а также ваша служба не должна зависеть от существования (или отсутствия) такого файла.
Встроенные предустановки
Службы мультимедиа поддерживают следующие встроенные предустановки кодирования.
BuiltInStandardEncoderPreset
BuiltInStandardEncoderPreset задает встроенную предустановку для кодирования входящего видео с помощью кодировщика категории "Стандартный".
В настоящее время поддерживаются приведенные ниже встроенные предустановки.
EncoderNamedPreset.AACGoodQualityAudio: данная предустановка создает один MP4-файл, содержащий только закодированный стереозвук со скоростью 192 Кбит/с.
EncoderNamedPreset.AdaptiveStreaming: поддерживает кодирование H.264 с адаптивной скоростью. Дополнительные сведения см. в статье Кодирование с помощью автоматически созданной схемы скоростей.
EncoderNamedPreset.H265AdaptiveStreaming: аналогично предустановке AdaptiveStreaming, но используется кодек HEVC (H.265). Создает набор MP4-файлов с одинаковыми группами GOP, используя H.265 для видео и стерео AAC для аудио. Автоматическое создание поразрядной лестницы на основе разрешения входных данных, битовой скорости и частоты кадров. Созданная автоматически предустановка никогда не превышает разрешение и скорость входных данных. Например, если входные данные — 720p, выходные данные будут 720p или хуже.
EncoderNamedPreset.ContentAwareEncoding: предоставляет предустановку для кодирования H.264 с учетом содержимого. Она создает набор GOP-файлов формата MP4, используя кодировку с учетом содержимого. Учитывая любое входное содержимое, служба выполняет исходный упрощенный анализ входного содержимого и использует результаты для определения оптимального количества слоев, соответствующие параметры скорости и разрешения для доставки с помощью адаптивной потоковой передачи. Эта предустановка особенно эффективна для видеороликов с низким и средним уровнем сложности, где выходные файлы будут иметь более низкую скорость, но с приемлемым качеством изображения для просмотра. Выходные данные будут содержать файлы MP4 с чередованием видео и аудио. Эта предустановка выдает выходные данные разрешением до 1080P HD. Если вам нужны выходные данные в формате 4K, можно настроить для предустановки PresetConfigurations с помощью свойства maxHeight. Дополнительные сведения см. в разделе Кодирование с учетом содержимого.
EncoderNamedPreset.H265ContentAwareEncoding: предоставляет предустановку для кодирования HEVC (H.265) с учетом содержимого. Она создает набор GOP-файлов формата MP4, используя кодировку с учетом содержимого. Учитывая любое входное содержимое, служба выполняет исходный упрощенный анализ входного содержимого и использует результаты для определения оптимального количества слоев, соответствующие параметры скорости и разрешения для доставки с помощью адаптивной потоковой передачи. Эта предустановка особенно эффективна для видеороликов с низким и средним уровнем сложности, где выходные файлы будут иметь более низкую скорость, но с приемлемым качеством изображения для просмотра. Выходные данные будут содержать файлы MP4 с чередованием видео и аудио. Эта предустановка выдает выходные данные разрешением до 4K HD. Если вам нужны выходные данные в формате 8K, можно настроить для предустановки PresetConfigurations с помощью свойства maxHeight.
EncoderNamedPreset.H264MultipleBitrate1080p: данная предустановка создает набор из восьми MP4-файлов с одинаковыми группами GOP, скоростями в диапазоне 400–6000 Кбит/с и стереофоническим звуком в формате AAC. Разрешение — 360–1080 пикселей.
EncoderNamedPreset.H264MultipleBitrate720p: данная предустановка создает набор из шести MP4-файлов с одинаковыми группами GOP, скоростями 400–3400 Кбит/с и стереофоническим звуком в формате AAC. Разрешение — 360–720 пикселей.
EncoderNamedPreset.H264MultipleBitrateSD: данная предустановка создает набор из пяти MP4-файлов с одинаковыми группами GOP, скоростями 400–1600 Кбит/с и стереофоническим звуком в формате AAC. Разрешение — 360–480 пикселей.
EncoderNamedPreset.H264SingleBitrate1080p: создает файл MP4, где для видео используется кодек H.264, скорость 6750 Кбит/с и изображение высотой 1080 пикселей, а для аудио — стереозвук с кодеком AAC-LC и скоростью 128 Кбит/с. Если вы хотите уменьшить скорость для аудио, вы можете создать настраиваемую предустановку кодирования в преобразовании и изменить частоту дискретизации или число каналов, чтобы получить более низкие значения для AAC-LC.
EncoderNamedPreset.H264SingleBitrate720p: создает файл MP4, где для видео используется кодек H.264, скорость 4500 Кбит/с и изображение высотой 720 пикселей, а для аудио — стереозвук с кодеком AAC-LC и скоростью 128 Кбит/с. Если вы хотите уменьшить скорость для аудио, вы можете создать настраиваемую предустановку кодирования в преобразовании и изменить частоту дискретизации или число каналов, чтобы получить более низкие значения для AAC-LC.
EncoderNamedPreset.H264SingleBitrateSD: создает файл MP4, где для видео используется кодек H.264, скорость 2200 Кбит/с и изображение высотой 480 пикселей, а для аудио — стереозвук с кодеком AAC-LC и скоростью 128 Кбит/с. Если вы хотите уменьшить скорость для аудио, вы можете создать настраиваемую предустановку кодирования в преобразовании и изменить частоту дискретизации или число каналов, чтобы получить более низкие значения для AAC-LC.
EncoderNamedPreset.H265SingleBitrate720P: создает файл MP4, где для видео используется кодек HEVC H.265, скорость 1800 Кбит/с и изображение высотой 720 пикселей, а для аудио — стереозвук с кодеком AAC-LC и скоростью 128 Кбит/с.
EncoderNamedPreset.H265SingleBitrate1080p: создает файл MP4, где для видео используется кодек HEVC H.265, скорость 3500 Кбит/с и изображение высотой 1080 пикселей, а для аудио — стереозвук с кодеком AAC-LC и скоростью 128 Кбит/с.
EncoderNamedPreset.H265SingleBitrate4K: создает файл MP4, где для видео используется кодек HEVC H.265, скорость 9500 Кбит/с и изображение высотой 2160 пикселей, а для аудио — стереозвук с кодеком AAC-LC и скоростью 128 Кбит/с.
Чтобы просмотреть наиболее актуальный список предварительных настроек, ознакомьтесь со статьей Встроенные предустановки для использования при кодировании видео.
Пользовательские предустановки
Службы мультимедиа полностью поддерживают настройку всех значений в предустановках в соответствии с конкретными требованиями к кодированию.
StandardEncoderPreset
StandardEncoderPreset описывает параметры, используемые при кодировании входящего видео с помощью кодировщика категории "Стандартный". Эту предустановку следует использовать при настройке предустановок преобразования.
Рекомендации
При создании настраиваемых предустановок, используйте следующие рекомендации.
- Все значения высоты и ширины в содержимом AVC должны быть кратны четырем.
- В службах мультимедиа In Azure 3 все скорости потока при кодировании выражены в битах в секунду. Это отличается от предустановок с нашими API версии 2, где в качестве единицы измерения использовались килобиты в секунду. Например, если скорость передачи в версии 2 была указана как 128 (килобит/секунду), то в версии 3 она будет установлена на 128 000 (бит/секунду).
Предустановленная схема
В Службах мультимедиа v3 предустановки являются строго типизированными сущностями в самом API. Определение схемы для этих объектов можно найти в спецификации Open API (или Swagger). Определения предустановок (например, StandardEncoderPreset) можно также просмотреть в REST API, пакете SDK для .NET (или в другой справочной документации по Службам мультимедиа версии 3).
Масштабирование кодирования в версии 3
Для учетных записей, созданных с помощью API версии 2020-05-01 или более поздней либо с помощью портала Azure, масштабирование и зарезервированные единицы мультимедиа больше не требуются. Масштабирование будет автоматическим и обрабатываться службой без внешнего участия.
Выставление счетов
Счета в Службах мультимедиа не выставляются за отмененные или ошибочные задания. Например, задание, которое достигло времени выполнения 50 % и было отменено, не оплачивается на 50 % минут выполнения задания. Вы платите только за завершенные задания.
Дополнительные сведения см. на странице цен.
Примеры кодирования
См. обширный список примеров кодирования.
Справка и поддержка
Вы можете обратиться к Службам мультимедиа с вопросами или следить за нашими обновлениями одним из следующих способов:
- ВОПРОСЫ И ОТВЕТЫ
-
Stack Overflow. Пометьте вопросы тегом
azure-media-services
. - @MSFTAzureMedia или используйте @AzureSupport , чтобы запросить поддержку.
- Отправьте запрос в службу поддержки через портал Azure.