Динамическая упаковка в Службах мультимедиа версии 3Dynamic packaging in Media Services v3

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


Службы мультимедиа Microsoft Azure можно использовать для кодирования исходных файлов мультимедиа во множество форматов.Microsoft Azure Media Services can be used to encode many media source file formats. Они предоставляют их через различные протоколы потоковой передачи (с защитой содержимого или без нее) для доступа к устройствам всех основных типов (например, на платформах с iOS и Android).It delivers them via different streaming protocols, with or without content protection, to reach all major devices (like iOS and Android devices). Эти клиенты распознают разные протоколы.These clients understand different protocols. Например, для iOS потоки должны доставляться в формате HTTP Live Streaming (HLS), а устройства Android поддерживают как HLS, так и формат MPEG DASH.For example, iOS requires streams to be delivered in HTTP Live Streaming (HLS) format and Android devices support HLS as well as MPEG DASH.

В Службах мультимедиа конечная точка потоковой передачи (источник) — это служба динамической (JIT) упаковки и служба источника, которая может в реальном времени и по запросу доставлять содержимое непосредственно в клиентское приложение проигрывателя.In Media Services, a streaming endpoint (origin) represents a dynamic (just-in-time) packaging and origin service that can deliver your live and on-demand content directly to a client player app. Она использует один из распространенных протоколов потоковой передачи мультимедиа, упомянутых в следующем разделе.It uses one of the common streaming media protocols mentioned in the following section. Динамическая упаковка — это возможность, которая по умолчанию предоставляется для конечных точек потоковой передачи.Dynamic packaging is a feature that comes standard on all streaming endpoints.

Подготовка исходных файлов к доставкеTo prepare your source files for delivery

Чтобы воспользоваться преимуществами динамической упаковки, вам необходимо кодировать свой мезонинный (исходный) файл в набор файлов MP4 (ISO Base Media 14496-12) с несколькими скоростями.To take advantage of dynamic packaging, you need to encode your mezzanine (source) file into a set of multiple bitrate MP4 (ISO Base Media 14496-12) files. Вам нужен ресурс с закодированными MP4-файлами и файлами конфигурации потоковой передачи, которые Службы мультимедиа используют для динамической упаковки.You need to have an asset with the encoded MP4 and streaming configuration files needed by Media Services dynamic packaging. Такой набор MP4-файлов позволит применять динамическую упаковку для передачи видео по протоколам потоковой передачи мультимедиа, как описано далее.From this set of MP4 files, you can use dynamic packaging to deliver video via the streaming media protocols described below.

Динамическая упаковка служб мультимедиа Azure поддерживает только видео- и аудиофайлы в формате контейнера MP4.Azure Media Services dynamic packaging only supports video and audio file in the MP4 container format. Звуковые файлы должны быть закодированы в контейнер MP4, а также использовать альтернативные кодеки, например Dolby.Audio files must be encoded into an MP4 container as well when using alternate codecs like Dolby.

Совет

Один из способов получить MP4 и потоковые файлы конфигурации заключается в кодировании вашего мезонинного файла с помощью Media Services.One way to get the MP4 and streaming configuration files is to encode your mezzanine file with Media Services.

Чтобы видео в закодированном ресурсе стали доступны для воспроизведения в клиентах, необходимо создать указатель потоковой передачи и сформировать URL-адреса потоковой передачи.To make videos in the encoded asset available to clients for playback, you have to create a Streaming Locator and build streaming URLs. Затем, в зависимости от формата, указанного в манифесте клиента потоковой передачи (HLS, MPEG DASH или Smooth Streaming), вы получаете поток по выбранному протоколу.Then, based on the specified format in the streaming client manifest (HLS, MPEG DASH, or Smooth Streaming), you receive the stream in the protocol you've chosen.

В результате вы сможете хранить и оплачивать файлы только в одном формате, а службы мультимедиа выполнят сборку и будут обслуживать соответствующий ответ на основе запросов клиента.As a result, you only need to store and pay for the files in single storage format and Media Services service will build and serve the appropriate response based on requests from a client.

Если вы планируете защитить содержимое с помощью динамического шифрования Media Services, см. раздел Потоковые протоколы и типы шифрования.If you plan to protect your content by using Media Services dynamic encryption, see Streaming protocols and encryption types.

Протокол HLSHLS protocol

Клиент потоковой передачи может указать следующие форматы HLS:Your streaming client can specify the following HLS formats:

ПротоколProtocol ПримерExample
HLS V4HLS V4 https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-aapl)
HLS V3HLS V3 https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-aapl-v3)
HLS CMAFHLS CMAF https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-cmaf)

Примечание

Предыдущие рекомендации от Apple предполагали передачу только аудиоданных для сетей с низкой пропускной способностью.Previous guidelines from Apple recommended that the fallback for low bandwidth networks was to provide an audio-only stream. В настоящее время кодировщик Служб мультимедиа автоматически создает дорожку, включающую только аудио. Рекомендации Apple теперь указывают, что не следует включать дорожку только с аудио, особенно для проката на Apple TV.At present, the Media Services encoder automatically generates an audio-only track. Apple guidelines now state that the audio-only track should not be included, especially for Apple TV distribution. Чтобы проигрыватель не переключался по умолчанию на дорожку только с аудио, мы предлагаем включить тег "audio-only=false" в URL-адрес, который удаляет аудио-версию в HLS, или просто использовать HLS-V3.In order to prevent the player from defaulting to an audio-only track, we suggest using the “audio-only=false” tag in the URL which removes audio-only rendition in HLS, or simply use HLS-V3. Например, http://host/locator/asset.ism/manifest(format=m3u8-aapl,audio-only=false).For example, http://host/locator/asset.ism/manifest(format=m3u8-aapl,audio-only=false).

Протокол MPEG-DASHMPEG-DASH protocol

Клиент потоковой передачи может указать следующие форматы MPEG-DASH:Your streaming client can specify the following MPEG-DASH formats:

ПротоколProtocol ПримерExample
MPEG-DASH CSFMPEG-DASH CSF https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-csf)
MPEG-DASH CMAFMPEG-DASH CMAF https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-cmaf)

Протокол Smooth StreamingSmooth Streaming protocol

Клиент потоковой передачи может указать следующие форматы Smooth Streaming:Your streaming client can specify the following Smooth Streaming formats:

ПротоколProtocol Примечания и примерыNotes/examples
Smooth StreamingSmooth Streaming https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest
Smooth Streaming 2.0 (устаревший манифест)Smooth Streaming 2.0 (legacy manifest) По умолчанию формат манифеста Smooth Streaming содержит тег повтора (r-tag).By default, Smooth Streaming manifest format contains the repeat tag (r-tag). Однако некоторые проигрыватели не поддерживают r-tag.However, some players do not support the r-tag. Клиенты с этими проигрывателями могут использовать формат, который отключает r-tag.Clients with these players can use a format that disables the r-tag:

https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=fmp4-v20)

Примечание

Для Smooth Streaming требуется, чтобы в вашем потоке присутствовали видео- и аудиоданные.Smooth Streaming requires that both audio and video should be present in your stream.

Рабочий процесс для потокового воспроизведения по запросуOn-demand streaming workflow

Далее описаны этапы обычного рабочего процесса потоковой передачи в Службах мультимедиа, при котором динамическая упаковка используется с кодировщиком (цен. категория "Стандартный") в Службах мультимедиа Azure.The following steps show a common Media Services streaming workflow where dynamic packaging is used along with the Standard Encoder in Azure Media Services.

  1. Отправьте входной файл например MP4, QuickTime, MOV или другого поддерживаемого формата.Upload an input file such as a MP4, QuickTime/MOV, or other supported file format. Этот файл также называется мезонинным или исходным.This file is also referred to as the mezzanine or source file. Список поддерживаемых форматов см. в статье Standard Encoder formats and codecs (Форматы и кодеки кодировщика ценовой категории "Стандартный").For the list of supported formats, see Formats Supported by the Standard Encoder.

  2. Закодируйте мезонинный файл в набор MP4-файлов с адаптивной скоростью в формате H.264 или AAC.Encode your mezzanine file into an H.264/AAC MP4 adaptive bitrate set.

    Если у вас уже есть закодированные файлы и требуется только скопировать их и выполнить потоковую передачу, используйте API CopyVideo и CopyAudio.If you already have encoded files and just want to copy and stream the files, use: CopyVideo and CopyAudio APIs. В результате будет создан MP4-файл с манифестом потоковой передачи (ISM-файл).A new MP4 file with a streaming manifest (.ism file) will be created as a result.

  3. Опубликуйте выходной ресурс, который содержит набор MP4-файлов с адаптивной скоростью.Publish the output asset that contains the adaptive bitrate MP4 set. Публикация выполняется путем создания указателя потоковой передачи.You publish by creating a streaming locator.

  4. Создайте URL-адреса, которые предназначены для различных форматов (HLS, MPEG-DASH и Smooth Streaming).Build URLs that target different formats (HLS, MPEG-DASH, and Smooth Streaming). Конечная точка потоковой передачи возьмет на себя выдачу надлежащего манифеста и обработку запросов для всех форматов.The streaming endpoint would take care of serving the correct manifest and requests for all these different formats.

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

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

Путь скачивания на представленном выше изображении нужен только для демонстрации того, что MP4-файл можно скачать напрямую через конечную точку потоковой передачи (источник), если в указателе потоковой передачи настроена политика потоковой передачи для скачивания.The download path is present in the above image just to show you that you can download an MP4 file directly through the streaming endpoint (origin) (you specify the downloadable streaming policy on the streaming locator).
Динамический упаковщик не изменяет файл.The dynamic packager is not altering the file. При необходимости вы можете использовать интерфейсы API хранилища BLOB-объектов Azure для прямого доступа к MP4 и поэтапной загрузки, если хотите обойти функции конечной точки потоковой передачи (источник).You can optionally use the Azure blob storage APIs to access an MP4 directly for progressive downloading if you wish to bypass the streaming endpoint (origin) features.

Кодирование в MP4-файлы с адаптивной скоростьюEncode to adaptive bitrate MP4s

В ресурсах по указанным ниже ссылкам показаны примеры кодирования видео с помощью Служб мультимедиа:The following articles show examples of how to encode a video with Media Services:

Просмотрите список форматов и кодеков кодировщика ценовой категории "Стандартный".See the list of Standard Encoder formats and codecs.

Рабочий процесс для потоковой трансляции в реальном времениLive streaming workflow

В реальном событии можно задать сквозное кодирование (локальный динамический кодировщик отправляет поток с несколькими скоростями) или кодирования в реальном времени (локальный динамический кодировщик отправляет односкоростной поток).A live event can be set to either a pass-through (an on-premises live encoder sends a multiple bitrate stream) or live encoding (an on-premises live encoder sends a single bitrate stream).

Ниже описан типичный рабочий процесс для потоковой трансляции с динамической упаковкой.Here's a common workflow for live streaming with dynamic packaging:

  1. Создайте событие прямой трансляции.Create a live event.
  2. Получите URL-адрес приема и настройте использование URL-адреса в локальном кодировщике для отправки веб-канала входного потока.Get the ingest URL and configure your on-premises encoder to use the URL to send the contribution feed.
  3. Получите URL-адрес для предварительного просмотра, чтобы проверить получение входных данных от кодировщика.Get the preview URL and use it to verify that the input from the encoder is being received.
  4. Создайте ресурс.Create a new asset.
  5. Создайте компонент выходных данных прямой трансляции с использованием имени созданного ресурса.Create a live output and use the asset name that you created.
    Выходные данные потоковой трансляции архивируют поток в ресурс.The live output archives the stream into the asset.
  6. Создайте указатель потоковой передачи со встроенным типом политики потоковой передачи.Create a streaming locator with the built-in streaming policy types.
    Если вы хотите зашифровать свое содержимое, ознакомьтесь с обзором системы защиты содержимого.If you intend to encrypt your content, review Content protection overview.
  7. Создайте список путей на основе указателя потоковой передачи, чтобы получать URL-адреса для использования.List the paths on the streaming locator to get the URLs to use.
  8. Получите имя узла для конечной точки потоковой передачи, с которой должна идти потоковая передача.Get the host name for the streaming endpoint you want to stream from.
  9. Создайте URL-адреса, которые предназначены для различных форматов (HLS, MPEG-DASH и Smooth Streaming).Build URLs that target different formats (HLS, MPEG-DASH, and Smooth Streaming). Конечная точка потоковой передачи берет на себя выдачу правильного манифеста и обработку запросов для разных форматов.The streaming endpoint takes care of serving the correct manifest and requests for the different formats.

На схеме показан рабочий процесс для потоковой трансляции с динамической упаковкой.This diagram shows the workflow for live streaming with dynamic packaging:

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

Сведения о потоковой трансляции в Службах мультимедиа версии 3 см. в статье здесь.For information about live streaming in Media Services v3, see Live streaming overview.

Видеокодеки, поддерживаемые для динамической упаковкиVideo codecs supported by Dynamic Packaging

Динамическая упаковка поддерживает видеофайлы в формате файла контейнера MP4 и содержащие видео, закодированное с помощью H.264 (MPEG-4 AVC или AVC1) либо H.265 (HEVC, hev1 или hvc1).Dynamic packaging supports video files that are in the MP4 container file format and contain video that is encoded with H.264 (MPEG-4 AVC or AVC1) or H.265 (HEVC, hev1, or hvc1).

Примечание

С динамической упаковкой успешно протестирована трансляция видео с разрешением до 4K и частотой до 60 кадров в секунду.Resolutions of up to 4K and frame rates of up to 60 frames/second have been tested with dynamic packaging.

Аудиокодеки, поддерживаемые для динамической упаковкиAudio codecs supported by dynamic packaging

Динамическая упаковка также поддерживает аудиофайлы, которые хранятся в формате контейнера файла MP4, содержащего закодированный звуковой поток в одном из следующих кодеков:Dynamic packaging also supports audio files that are stored in the MP4 file container format containing encoded audio stream in one of the following codecs:

  • AAC (AAC-LC, HE-AAC v1 или HE-AAC v2).AAC (AAC-LC, HE-AAC v1, or HE-AAC v2).

  • Dolby Digital Plus (Enhanced AC-3 или E-AC3).Dolby Digital Plus (Enhanced AC-3 or E-AC3). Для работы с динамической упаковкой закодированный аудиофайл должен храниться в формате контейнера MP4.The encoded audio must be stored in the MP4 container format to work with Dynamic Packaging.

  • Dolby AtmosDolby Atmos

    Потоковая передача содержимого Dolby Atmos поддерживается такими стандартами, как протокол MPEG-DASH с форматом потоковой передачи Common Streaming Format (CSF) или форматом Common Media Application Format (CMAF) фрагментированного MP4, а также через HTTP Live Streaming (HLS) со CMAF.Streaming Dolby Atmos content is supported for standards like the MPEG-DASH protocol with either Common Streaming Format (CSF) or Common Media Application Format (CMAF) fragmented MP4, and via HTTP Live Streaming (HLS) with CMAF.

  • DTSDTS
    Кодеки DTS, поддерживаемые форматами упаковки DASH-CSF, DASH-CMAF, HLS-M2TS и HLS-CMAF:DTS codecs supported by DASH-CSF, DASH-CMAF, HLS-M2TS, and HLS-CMAF packaging formats are:

    • DTS Digital Surround (dtsc);DTS Digital Surround (dtsc)
    • DTS-HD High Resolution и DTS-HD Master Audio (dtsh);DTS-HD High Resolution and DTS-HD Master Audio (dtsh)
    • DTS Express (dtse);DTS Express (dtse)
    • DTS-HD Lossless (no core) (dtsl).DTS-HD Lossless (no core) (dtsl)

Динамическая упаковка поддерживает несколько звуковых дорожек вывода с DASH или HLS (версии 4 или более поздней) для потоковой передачи ресурсов, у которых несколько звуковых дорожек на разных языках и с разными кодеками.Dynamic packaging supports multiple audio tracks with DASH or HLS (version 4 or later) for streaming assets that have multiple audio tracks with multiple codecs and languages.

Чтобы работать с динамической упаковкой, для всех приведенных выше аудиокодеков закодированный аудиофайл должен храниться в формате контейнера MP4.For all of the above audio codecs, the encoded audio must be stored in the MP4 container format to work with Dynamic Packaging. Служба не поддерживает необработанные форматы файлов элементарного необработанного потока в хранилище BLOB-объектов (например, DTS, AC3).The service does not support raw elementary stream file formats on blob storage (for example the following would not be supported - .dts, .ac3.)

Для упаковки аудиофайлов поддерживаются только файлы MP4 в расширении MP4A.Only files with the .mp4 of .mp4a extension are supported for audio packaging.

ОграниченияLimitations

Ограничения для аудио в формате AAC 5.1 в iOSiOS limitation on AAC 5.1 audio

Устройства Apple iOS не поддерживают аудиокодек AAC 5.1.Apple iOS devices do not support 5.1 AAC audio codec. Многоканальный звук нужно кодировать с помощью кодеков Dolby Digital или Dolby Digital Plus.Multi-channel audio must be encoded using Dolby Digital or Dolby Digital Plus codecs.

Подробные сведения см. в статье HLS authoring specification for apple devices (Спецификации по разработке с использованием HLS для устройств Apple).For detailed information, see HLS authoring specification for apple devices.

Примечание

Службы мультимедиа не поддерживают кодирование в цифровых форматах Dolby Digital, Dolby Digital Plus или Dolby Digital Plus с многоканальными форматами звука Dolby Atmos.Media Services does not support encoding of Dolby Digital, Dolby Digital Plus or Dolby Digital Plus with Dolby Atmos multi-channel audio formats.

Звук Dolby DigitalDolby Digital audio

Динамическая упаковка в Службах мультимедиа в настоящее время не поддерживает файлы, которые содержат звук Dolby Digital (AC3), так как компания Dolby объявила этот кодек устаревшим.Media Services dynamic packaging does not currently support files that contain Dolby Digital (AC3) audio (as this is considered a legacy codec by Dolby).

МанифестыManifests

В динамической упаковке Служб мультимедиа динамически создаются манифесты клиентов потоковой передачи для HLS, MPEG-DASH и Smooth Streaming на основе селектора формата в URL-адресе.In Media Services dynamic packaging, the streaming client manifests for HLS, MPEG-DASH, and Smooth Streaming are dynamically generated based on the format selector in the URL.

Файл манифеста содержит потоковые метаданные, например тип дорожки (звук, видео или текст), имя дорожки, время начала и окончания, скорость (качество), языки дорожки, окно представления (скользящее окно фиксированной длительности), видеокодек (FourCC).A manifest file includes streaming metadata such as track type (audio, video, or text), track name, start and end time, bitrate (qualities), track languages, presentation window (sliding window of fixed duration), and video codec (FourCC). Кроме того, он предписывает проигрывателю получить следующий фрагмент, предоставляя информацию о следующих доступных для воспроизведения фрагментах видео и их расположении.It also instructs the player to retrieve the next fragment by providing information about the next playable video fragments that are available and their location. Фрагменты (или сегменты) — это фактические блоки видеосодержимого.Fragments (or segments) are the actual "chunks" of video content.

ПримерыExamples

HLSHLS

Ниже приведен пример файла манифеста HLS, также называемого главным списком воспроизведения HLS:Here's an example of an HLS manifest file, also called an HLS master playlist:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="aac_eng_2_128041_2_1",LANGUAGE="eng",DEFAULT=YES,AUTOSELECT=YES,URI="QualityLevels(128041)/Manifest(aac_eng_2_128041_2_1,format=m3u8-aapl)"
#EXT-X-STREAM-INF:BANDWIDTH=536608,RESOLUTION=320x180,CODECS="avc1.64000d,mp4a.40.2",AUDIO="audio"
QualityLevels(381048)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=536608,RESOLUTION=320x180,CODECS="avc1.64000d",URI="QualityLevels(381048)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=884544,RESOLUTION=480x270,CODECS="avc1.640015,mp4a.40.2",AUDIO="audio"
QualityLevels(721495)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=884544,RESOLUTION=480x270,CODECS="avc1.640015",URI="QualityLevels(721495)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=1327398,RESOLUTION=640x360,CODECS="avc1.64001e,mp4a.40.2",AUDIO="audio"
QualityLevels(1154816)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1327398,RESOLUTION=640x360,CODECS="avc1.64001e",URI="QualityLevels(1154816)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=2413312,RESOLUTION=960x540,CODECS="avc1.64001f,mp4a.40.2",AUDIO="audio"
QualityLevels(2217354)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=2413312,RESOLUTION=960x540,CODECS="avc1.64001f",URI="QualityLevels(2217354)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=3805760,RESOLUTION=1280x720,CODECS="avc1.640020,mp4a.40.2",AUDIO="audio"
QualityLevels(3579827)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=3805760,RESOLUTION=1280x720,CODECS="avc1.640020",URI="QualityLevels(3579827)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=139017,CODECS="mp4a.40.2",AUDIO="audio"
QualityLevels(128041)/Manifest(aac_eng_2_128041_2_1,format=m3u8-aapl)

MPEG-DASHMPEG-DASH

Ниже приведен пример файла манифеста MPEG-DASH, также называемого форматом описания представления мультимедиа (MPD) MPEG-DASH:Here's an example of an MPEG-DASH manifest file, also called an MPEG-DASH Media Presentation Description (MPD):

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediaPresentationDuration="PT1M10.315S" minBufferTime="PT7S">
   <Period>
      <AdaptationSet id="1" group="5" profiles="ccff" bitstreamSwitching="false" segmentAlignment="true" contentType="audio" mimeType="audio/mp4" codecs="mp4a.40.2" lang="en">
         <SegmentTemplate timescale="10000000" media="QualityLevels($Bandwidth$)/Fragments(aac_eng_2_128041_2_1=$Time$,format=mpd-time-csf)" initialization="QualityLevels($Bandwidth$)/Fragments(aac_eng_2_128041_2_1=i,format=mpd-time-csf)">
            <SegmentTimeline>
               <S d="60160000" r="10" />
               <S d="41386666" />
            </SegmentTimeline>
         </SegmentTemplate>
         <Representation id="5_A_aac_eng_2_128041_2_1_1" bandwidth="128041" audioSamplingRate="48000" />
      </AdaptationSet>
      <AdaptationSet id="2" group="1" profiles="ccff" bitstreamSwitching="false" segmentAlignment="true" contentType="video" mimeType="video/mp4" codecs="avc1.640020" maxWidth="1280" maxHeight="720" startWithSAP="1">
         <SegmentTemplate timescale="10000000" media="QualityLevels($Bandwidth$)/Fragments(video=$Time$,format=mpd-time-csf)" initialization="QualityLevels($Bandwidth$)/Fragments(video=i,format=mpd-time-csf)">
            <SegmentTimeline>
               <S d="60060000" r="10" />
               <S d="42375666" />
            </SegmentTimeline>
         </SegmentTemplate>
         <Representation id="1_V_video_1" bandwidth="3579827" width="1280" height="720" />
         <Representation id="1_V_video_2" bandwidth="2217354" codecs="avc1.64001F" width="960" height="540" />
         <Representation id="1_V_video_3" bandwidth="1154816" codecs="avc1.64001E" width="640" height="360" />
         <Representation id="1_V_video_4" bandwidth="721495" codecs="avc1.640015" width="480" height="270" />
         <Representation id="1_V_video_5" bandwidth="381048" codecs="avc1.64000D" width="320" height="180" />
      </AdaptationSet>
   </Period>
</MPD>

Smooth StreamingSmooth Streaming

Ниже приведен пример файла манифеста Smooth Streaming:Here's an example of a Smooth Streaming manifest file:

<?xml version="1.0" encoding="UTF-8"?>
<SmoothStreamingMedia MajorVersion="2" MinorVersion="2" Duration="703146666" TimeScale="10000000">
   <StreamIndex Chunks="12" Type="audio" Url="QualityLevels({bitrate})/Fragments(aac_eng_2_128041_2_1={start time})" QualityLevels="1" Language="eng" Name="aac_eng_2_128041_2_1">
      <QualityLevel AudioTag="255" Index="0" BitsPerSample="16" Bitrate="128041" FourCC="AACL" CodecPrivateData="1190" Channels="2" PacketSize="4" SamplingRate="48000" />
      <c t="0" d="60160000" r="11" />
      <c d="41386666" />
   </StreamIndex>
   <StreamIndex Chunks="12" Type="video" Url="QualityLevels({bitrate})/Fragments(video={start time})" QualityLevels="5">
      <QualityLevel Index="0" Bitrate="3579827" FourCC="H264" MaxWidth="1280" MaxHeight="720" CodecPrivateData="0000000167640020ACD9405005BB011000003E90000EA600F18319600000000168EBECB22C" />
      <QualityLevel Index="1" Bitrate="2217354" FourCC="H264" MaxWidth="960" MaxHeight="540" CodecPrivateData="000000016764001FACD940F0117EF01100000303E90000EA600F1831960000000168EBECB22C" />
      <QualityLevel Index="2" Bitrate="1154816" FourCC="H264" MaxWidth="640" MaxHeight="360" CodecPrivateData="000000016764001EACD940A02FF9701100000303E90000EA600F162D960000000168EBECB22C" />
      <QualityLevel Index="3" Bitrate="721495" FourCC="H264" MaxWidth="480" MaxHeight="270" CodecPrivateData="0000000167640015ACD941E08FEB011000003E90000EA600F162D9600000000168EBECB22C" />
      <QualityLevel Index="4" Bitrate="381048" FourCC="H264" MaxWidth="320" MaxHeight="180" CodecPrivateData="000000016764000DACD941419F9F011000003E90000EA600F14299600000000168EBECB22C" />
      <c t="0" d="60060000" r="11" />
      <c d="42375666" />
   </StreamIndex>
</SmoothStreamingMedia>

Именование дорожек в манифестеNaming of tracks in the manifest

Если в ISM-файле указано имя звуковой дорожки, Службы мультимедиа добавляют элемент Label в AdaptationSet, чтобы указать структурные сведения для конкретной звуковой дорожки. Пример выходного манифеста DASH:If an audio track name is specified in the .ism file, Media Services adds a Label element within an AdaptationSet to specify the textural information for the specific audio track. An example of the output DASH manifest:

<AdaptationSet codecs="mp4a.40.2" contentType="audio" lang="en" mimeType="audio/mp4" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
  <Label>audio_track_name</Label>
  <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
  <Representation audioSamplingRate="48000" bandwidth="131152" id="German_Forest_Short_Poem_english-en-68s-2-lc-128000bps_seg">
    <BaseURL>German_Forest_Short_Poem_english-en-68s-2-lc-128000bps_seg.mp4</BaseURL>
  </Representation>
</AdaptationSet>

Проигрыватель может использовать элемент Label для отображения в пользовательском интерфейсе.The player can use the Label element to display on its UI.

Сигнальные звуковые описания дорожекSignaling audio description tracks

Вы можете добавить в видео дорожку речевого сопровождения, чтобы помочь слабовидящим клиентам следить за видеозаписью, слушая повествование.You can add a narration track to your video to help visually impaired clients follow the video recording by listening to the narration. Вам необходимо добавлять заметки к звуковой дорожке в качестве звукового описания в манифесте.You need to annotate an audio track as audio description in the manifest. Для этого добавьте в файл .ism. параметры "специальные возможности" и "роль".To do that, add “accessibility” and “role” parameters to the .ism file. Вы должны правильно задать эти параметры, чтобы звуковая дорожка передавалась в качестве звукового описания.It's your responsibility to set these parameters correctly to signal an audio track as audio description. Например, добавьте в файл .ism <param name="accessibility" value="description" /> и <param name="role" value="alternate" для определенной звуковой дорожки.For example, add <param name="accessibility" value="description" /> and <param name="role" value="alternate" to the .ism file for a specific audio track.

Дополнительные сведения см. в примере Как добавить сигналы к описанию звуковой дорожки.For more information, see the How to signal a descriptive audio track example.

Манифест Smooth StreamingSmooth Streaming manifest

При воспроизведении потоковой передачи Smooth Streaming для этой звуковой дорожки манифест будет содержать значения в атрибутах Accessibility и Role. Например, Role="alternate" Accessibility="description" будет добавлен в элемент StreamIndex, чтобы указать, что это звуковое описание.If you're playing a Smooth Streaming stream, the manifest would carry values in Accessibility and Role attributes for that audio track. For example, Role="alternate" Accessibility="description" would be added in the StreamIndex element to indicate it's an audio description.

Манифест DASHDASH manifest

Чтобы сигнализировать о звуковом описании, для манифеста DASH будут добавлены следующие два элемента:For DASH manifest, the following two elements would be added to signal the audio description:

<Accessibility schemeIdUri="urn:mpeg:dash:role:2011" value="description"/>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="alternate"/>

Список воспроизведения HLSHLS playlist

Для HLS версии 7 и выше (format=m3u8-cmaf) при получении сигнала для дорожки звукового описания список воспроизведения будет содержать AUTOSELECT=YES,CHARACTERISTICS="public.accessibility.describes-video".For HLS v7 and above (format=m3u8-cmaf), its playlist would carry AUTOSELECT=YES,CHARACTERISTICS="public.accessibility.describes-video" when the audio description track is signaled.

ПримерExample

Дополнительные сведения см. в разделе Как сигнализировать об описании звуковых дорожек.For more information, see How to signal audio description tracks.

Динамический манифестDynamic manifest

Чтобы контролировать количество дорожек, форматы, скорость и окно времени презентации для передачи на проигрыватели, вы можете использовать динамическую фильтрацию с помощью динамического упаковщика Служб мультимедиа.To control the number of tracks, formats, bitrates, and presentation time windows that are sent to players, you can use dynamic filtering with the Media Services dynamic packager. Дополнительные сведения см. в статье Pre-filtering manifests with Dynamic Packager (Предварительная фильтрация манифестов с помощью динамического упаковщика).For more information, see Pre-filtering manifests with the dynamic packager.

Динамическое шифрованиеDynamic encryption

Вы можете использовать динамическое шифрование, чтобы динамически шифровать содержимое в режиме реального времени или по требованию с помощью AES-128 или трех основных систем управления цифровыми правами (DRM): Microsoft PlayReady, Google Widevine и Apple FairPlay.You can use dynamic encryption to dynamically encrypt your live or on-demand content with AES-128 or any of the three major digital rights management (DRM) systems: Microsoft PlayReady, Google Widevine, and Apple FairPlay. Авторизованным клиентам также предоставляется служба доставки ключей AES и лицензий DRM.Media Services also provides a service for delivering AES keys and DRM licenses to authorized clients. Чтобы узнать больше, ознакомьтесь со статьей о динамическом шифровании.For more information, see dynamic encryption.

Примечание

Widevine — это служба, которая предоставляется компанией Google Inc. и подпадает под условия предоставления услуг и политику конфиденциальности Google Inc.Widevine is a service provided by Google Inc. and subject to the terms of service and Privacy Policy of Google, Inc.

Дополнительные сведенияMore information

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

Требуется помощь?Need help?

Вы можете открыть запрос в службу поддержки, перейдя к разделу нового запроса на техническую поддержку.You can open a support ticket by navigating to New support request.

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

Отправка, кодирование и потоковая передача видеоUpload, encode, and stream videos