Кодирование видео и аудио с помощью служб мультимедиаEncoding video and audio with Media Services

Термин кодирование в службах мультимедиа применяется к процессу преобразования файлов, содержащих цифровые видео и (или) звук, из одного стандартного формата в другой, с целью уменьшения размера файлов и (б) создания формата, совместимого с широким спектром устройств и приложений.The term encoding in Media Services applies to the process of converting files containing digital video and/or audio from one standard format to another, with the purpose of (a) reducing the size of the files, and/or (b) producing a format that's compatible with a broad range of devices and apps. Этот процесс также называется сжатием видео или перекодировкой.This process is also referred to as video compression, or transcoding. Дополнительные сведения о концепциях см. в статье Сжатие данных и кодирование и перекодирование .See the Data compression and the What Is Encoding and Transcoding? for further discussion of the concepts.

Видеоролики обычно доставляются на устройства и приложения путем последовательного скачивания или потоковой передачи с адаптивной скоростью.Videos are typically delivered to devices and apps by progressive download or through adaptive bitrate streaming.

  • Для доставки с помощью последовательного скачивания можно использовать службы мультимедиа Azure для преобразования файла цифрового мультимедиа (Media) в MP4 -файл, который содержит видео, закодированное с помощью кодека H. 264 , и звук, закодированный с помощью кодека AAC .To deliver by progressive download, you can use Azure Media Services to convert a digital media file (mezzanine) into an MP4 file, which contains video that's been encoded with the H.264 codec, and audio that's been encoded with the AAC codec. Этот MP4-файл записывается в ресурс в учетной записи хранения.This MP4 file is written to an Asset in your storage account. Для непосредственного скачивания файла можно использовать API службы хранилища Azure или пакеты SDK (например, REST API хранилища или пакет SDK для .NET).You can use the Azure Storage APIs or SDKs (for example, Storage REST API or .NET SDK) to download the file directly. Если вы создали выходной ресурс с заданным именем контейнера в хранилище, используйте это расположение.If you created the output Asset with a specific container name in storage, use that location. В противном случае можно использовать службы мультимедиа для вывода списка URL-адресов контейнера ресурсов.Otherwise, you can use Media Services to list the asset container URLs.
  • Чтобы подготовить содержимое для доставки с помощью потоковой передачи с адаптивной скоростью, файл подмножества должен быть закодирован с несколькими скоростями (от высокого до низкого).To prepare content for delivery by adaptive bitrate streaming, the mezzanine file needs to be encoded at multiple bitrates (high to low). Чтобы обеспечить корректное качество, разрешение видео уменьшается по мере понижения скорости.To ensure graceful transition of quality, the resolution of the video is lowered as the bitrate is lowered. Это приводит к последовательному вызову кодировки — таблице разрешений и скорости (см. раздел автоматически созданная лестница с адаптивной скоростью).This results in a so-called encoding ladder–a table of resolutions and bitrates (see auto-generated adaptive bitrate ladder). Службы мультимедиа можно использовать для кодирования файлов карт с несколькими скоростями.You can use Media Services to encode your mezzanine files at multiple bitrates. При этом вы получите набор MP4-файлов и связанные файлы конфигурации потоковой передачи, записанные в ресурс в учетной записи хранения.In doing so, you'll get a set of MP4 files and associated streaming configuration files written to an Asset in your storage account. Затем можно использовать динамическую упаковку в службах мультимедиа для доставки видео через протоколы потоковой передачи, такие как MPEG-тире и HLS.You can then use the Dynamic Packaging capability in Media Services to deliver the video via streaming protocols like MPEG-DASH and HLS. Для этого необходимо создать указатель потоковой передачи и построить URL-адреса потоковой передачи, соответствующие поддерживаемым протоколам, которые затем можно передать на устройства или приложения в зависимости от их возможностей.This requires you to create a Streaming Locator and build streaming URLs corresponding to the supported protocols, which can then be handed off to devices/apps based on their capabilities.

На следующей схеме показан рабочий процесс для кодирования по запросу с динамической упаковкой.The following diagram shows the workflow for on-demand encoding with dynamic packaging.

Рабочий процесс для кодирования по запросу с динамической упаковкой

В этой статье содержатся рекомендации о том, как закодировать содержимое с помощью Служб мультимедиа версии 3.This topic gives you guidance on how to encode your content with Media Services v3.

Преобразования и заданияTransforms and jobs

Для кодирования с помощью Служб мультимедиа версии 3 необходимо создать преобразование и задание.To encode with Media Services v3, you need to create a Transform and a Job. Преобразование определяет рецепт параметров кодирования и выходов. Задание является экземпляром рецепта.The transform defines a recipe for your encoding settings and outputs; the job is an instance of the recipe. Дополнительные сведения см. в статье Преобразования и задания.For more information, see Transforms and Jobs.

При кодировании с помощью Служб мультимедиа используются предустановки. На их основе кодировщик обрабатывает входные файлы мультимедиа.When encoding with Media Services, you use presets to tell the encoder how the input media files should be processed. Например, можно указать разрешение видео и число аудиоканалов для закодированного содержимого.For example, you can specify the video resolution and/or the number of audio channels you want in the encoded content.

Можно быстро приступить к работе, используя одну из рекомендуемых встроенных предустановок, основанных на передовых отраслевых рекомендациях. Можно также создать пользовательскую предустановку в соответствии с требованиями сценария или устройства.You can get started quickly with one of the recommended built-in presets based on industry best practices or you can choose to build a custom preset to target your specific scenario or device requirements. Дополнительные сведения см. в статье Кодирование с помощью пользовательского преобразования.For more information, see Encode with a custom Transform.

Начиная с января 2019 г., при кодировании с помощью Media Encoder Standard для создания файлов MP4 создается и добавляется в выходной ресурс новый MPI-файл.Starting with January 2019, when encoding with Media Encoder Standard to produce MP4 file(s), a new .mpi file is generated and added to the output Asset. Этот MPI-файл предназначен для повышения производительности динамической упаковки и потоковой передачи.This MPI file is intended to improve performance for dynamic packaging and streaming scenarios.

Примечание

Не следует изменять или удалять MPI-файл или зависеть от службы на наличие (или отсутствия) такого файла.You shouldn't modify or remove the MPI file, or take any dependency in your service on the existence (or not) of such a file.

Создание входных данных задания из URL-адреса HTTPSCreating job input from an HTTPS URL

При отправке заданий для обработки видео необходимо сообщить службам мультимедиа, где найти входное видео.When you submit Jobs to process your videos, you have to tell Media Services where to find the input video. Один из вариантов — указать URL-адрес HTTPS в качестве входных данных задания.One of the options is to specify an HTTPS URL as a job input. В настоящее время службы мультимедиа v3 не поддерживают блочную кодировку для URL-адресов HTTPS.Currently, Media Services v3 doesn't support chunked transfer encoding over HTTPS URLs.

ПримерыExamples

Создание входных данных задания из локального файлаCreating job input from a local file

Это видео может храниться как ресурс Служб мультимедиа. В этом случае необходимо создать входной ресурс на основе файла, который хранится локально в хранилище BLOB-объектов Azure.The input video can be stored as a Media Service Asset, in which case you create an input asset based on a file (stored locally or in Azure Blob storage).

ПримерыExamples

Кодирование локального файла с помощью встроенных предустановокEncode a local file using built-in presets

Создание входных данных задания с отсечениемCreating job input with subclipping

При кодировании видео можно задать также усечение или обрезать исходный файл и выдать выходные данные, которые будут содержать только нужную часть входного видео.When encoding a video, you can specify to also trim or clip the source file and produce an output that has only a desired portion of the input video. Эта функция работает с любыми преобразованиями , созданными с использованием предустановок буилтинстандарденкодерпресет или стандарденкодерпресет .This functionality works with any Transform that's built using either the BuiltInStandardEncoderPreset presets, or the StandardEncoderPreset presets.

Можно указать, чтобы создать Задание с одним клипом видео по запросу или в динамическом архиве (записанное событие).You can specify to create a Job with a single clip of a video on-demand or live archive (a recorded event). Входным заданием может быть ресурс или URL-адрес HTTPS.The job input could be an Asset or an HTTPS URL.

Совет

Если вы хотите выполнить потоковую передачу сублип видео без повторной кодировки видео, рассмотрите возможность использования предварительной фильтрации манифестов с динамическим упаковщиком.If you want to stream a sublip of your video without re-encoding the video, consider using Pre-filtering manifests with Dynamic Packager.

ПримерыExamples

См. примеры:See examples:

Встроенные предустановкиBuilt-in presets

Службы мультимедиа поддерживают следующие встроенные предустановки кодирования:Media Services supports the following built-in encoding presets:

буилтинстандарденкодерпресетBuiltInStandardEncoderPreset

BuiltInStandardEncoderPreset задает встроенную предустановку для кодирования входящего видео с помощью кодировщика категории "Стандартный".BuiltInStandardEncoderPreset is used to set a built-in preset for encoding the input video with the Standard Encoder.

В настоящее время поддерживаются приведенные ниже предустановки.The following presets are currently supported:

  • Енкодернамедпресет. аакгудкуалитяудио. создает один MP4-файл, содержащий только стерео аудио-кодирование с 192 кбит/с.EncoderNamedPreset.AACGoodQualityAudio: produces a single MP4 file containing only stereo audio encoded at 192 kbps.
  • Енкодернамедпресет. адаптивестреаминг (рекомендуется). Дополнительные сведения см. в разделе Автоматическое создание лестницы с скоростью.EncoderNamedPreset.AdaptiveStreaming (recommended): For more information, see auto-generating a bitrate ladder.
  • Енкодернамедпресет. контентаваринкодинжекспериментал. предоставляет экспериментальную предустановку для кодирования с поддержкой содержимого.EncoderNamedPreset.ContentAwareEncodingExperimental: exposes an experimental preset for content-aware encoding. При наличии входного содержимого служба пытается автоматически определить оптимальное количество слоев и соответствующие параметры скорости и разрешения для доставки адаптивной потоковой передачей.Given any input content, the service attempts to automatically determine the optimal number of layers, and appropriate bitrate and resolution settings for delivery by adaptive streaming. С течением времени базовые алгоритмы продолжат развиваться.The underlying algorithms will continue to evolve over time. Выходные данные будут содержать файлы MP4 с чередованием видео и аудио.The output will contain MP4 files with video and audio interleaved. Дополнительные сведения см. в разделе экспериментальная предустановка для кодировки с учетом содержимого.For more information, see Experimental preset for content-aware encoding.
  • Енкодернамедпресет. H264MultipleBitrate1080p. создает набор из восьми файлов MP4 с поддержкой GOP, от 6000 кбит до 400 Кбит/с и стерео AAC Audio.EncoderNamedPreset.H264MultipleBitrate1080p: produces a set of eight GOP-aligned MP4 files, ranging from 6000 kbps to 400 kbps, and stereo AAC audio. Разрешение — 360–1080 пикселей.Resolution starts at 1080p and goes down to 360p.
  • Енкодернамедпресет. H264MultipleBitrate720p. создает набор из шести файлов MP4 с поддержкой GOP, от 3400 кбит до 400 Кбит/с и стерео AAC Audio.EncoderNamedPreset.H264MultipleBitrate720p: produces a set of six GOP-aligned MP4 files, ranging from 3400 kbps to 400 kbps, and stereo AAC audio. Разрешение — 360–720 пикселей.Resolution starts at 720p and goes down to 360p.
  • Енкодернамедпресет. H264MultipleBitrateSD. создает набор из пяти файлов MP4 с поддержкой GOP, от 1600 кбит до 400 Кбит/с и стерео AAC Audio.EncoderNamedPreset.H264MultipleBitrateSD: produces a set of five GOP-aligned MP4 files, ranging from 1600 kbps to 400 kbps, and stereo AAC audio. Разрешение — 360–480 пикселей.Resolution starts at 480p and goes down to 360p.
  • Енкодернамедпресет. H264SingleBitrate1080p. создает MP4-файл, в котором видео кодируется с помощью микрокодека H. 264 с частотой 6750 кбит/с и высотой изображения в 1080 пикселей, а стерео аудио кодируется с помощью кодека AAC-LC в 64 кбит/с.EncoderNamedPreset.H264SingleBitrate1080p: produces an MP4 file where the video is encoded with H.264 codec at 6750 kbps and a picture height of 1080 pixels, and the stereo audio is encoded with AAC-LC codec at 64 kbps.
  • Енкодернамедпресет. H264SingleBitrate720p. создает MP4-файл, в котором видео кодируется с помощью микрокодека H. 264 с частотой 4500 кбит/с и высотой изображения в 720 пикселей, а стерео аудио кодируется с помощью кодека AAC-LC в 64 кбит/с.EncoderNamedPreset.H264SingleBitrate720p: produces an MP4 file where the video is encoded with H.264 codec at 4500 kbps and a picture height of 720 pixels, and the stereo audio is encoded with AAC-LC codec at 64 kbps.
  • Енкодернамедпресет. H264SingleBitrateSD. создает MP4-файл, в котором видео кодируется с помощью микрокодека H. 264 с частотой 2200 кбит/с и высотой изображения в 480 пикселей, а стерео аудио кодируется с помощью кодека AAC-LC в 64 кбит/с.EncoderNamedPreset.H264SingleBitrateSD: produces an MP4 file where the video is encoded with H.264 codec at 2200 kbps and a picture height of 480 pixels, and the stereo audio is encoded with AAC-LC codec at 64 kbps.

Чтобы просмотреть наиболее актуальный список предварительных настроек, ознакомьтесь со статьей встроенные предустановки, которые будут использоваться для кодирования видео.To see the most up-to-date presets list, see built-in presets to be used for encoding videos.

Сведения об использовании предустановок см. в разделе Отправка, кодирование и потоковая передача файлов.To see how the presets are used, see Uploading, encoding, and streaming files.

стандарденкодерпресетStandardEncoderPreset

StandardEncoderPreset описывает параметры, используемые при кодировании входящего видео с помощью кодировщика категории "Стандартный".StandardEncoderPreset describes settings to be used when encoding the input video with the Standard Encoder. Эту предустановку следует использовать при настройке предустановок преобразования.Use this preset when customizing Transform presets.

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

При создании пользовательских предустановок применяются следующие соображения.When creating custom presets, the following considerations apply:

  • Все значения высоты и ширины в содержимом AVC должны быть кратными четырем.All values for height and width on AVC content must be a multiple of four.
  • В службах мультимедиа Azure v3 все скорости кодирования находятся в битах в секунду.In Azure Media Services v3, all of the encoding bitrates are in bits per second. Это отличается от предустановок с помощью API v2, которые использовались в килобитах в секунду в качестве единицы измерения.This is different from the presets with our v2 APIs, which used kilobits/second as the unit. Например, если скорость в v2 была указана как 128 (килобит в секунду), то в v3 будет установлено значение 128000 (бит/сек).For example, if the bitrate in v2 was specified as 128 (kilobits/second), in v3 it would be set to 128000 (bits/second).

Настройка предустановокCustomizing presets

Службы мультимедиа полностью поддерживают настройку всех значений в предустановках в соответствии с конкретными требованиями к кодированию.Media Services fully supports customizing all values in presets to meet your specific encoding needs and requirements. Примеры, демонстрирующие, как настроить предустановки кодировщика, см. в следующем списке:For examples that show how to customize encoder presets, see the list below:

ПримерыExamples

Предустановленная схемаPreset schema

В службах мультимедиа v3 предустановки являются строго типизированными сущностями в самом API.In Media Services v3, presets are strongly typed entities in the API itself. Определение схемы для этих объектов можно найти в спецификации Open API (или Swagger).You can find the "schema" definition for these objects in Open API Specification (or Swagger). Предварительные определения (например, стандарденкодерпресет) можно также просмотреть в REST API, пакете SDK для .NET (или в другой справочной документации по службам мультимедиа версии 3).You can also view the preset definitions (like StandardEncoderPreset) in the REST API, .NET SDK (or other Media Services v3 SDK reference documentation).

Масштабирование кодирования в версии 3Scaling encoding in v3

Сведения об масштабировании обработки мультимедиа см. в разделе масштабирование с помощью CLI.To scale media processing, see Scale with CLI.

Получение справки, отправка отзывов, получение обновленийAsk questions, give feedback, get updates

Прочитайте статью сообщества Служб мультимедиа Azure, чтобы узнать, как задавать вопросы, оставлять отзывы и получать новости о Службах мультимедиа.Check out the Azure Media Services community article to see different ways you can ask questions, give feedback, and get updates about Media Services.

Дальнейшие действияNext steps