Динамическая упаковка в Службах мультимедиа версии 3
Предупреждение
Поддержка Служб мультимедиа Azure будет прекращена 30 июня 2024 г. Дополнительные сведения см. в руководстве по прекращению поддержки AMS.
Службы мультимедиа Azure предоставляют встроенный сервер-источник и возможности упаковки для доставки содержимого в форматах протокола потоковой передачи HLS и MPEG DASH. В AMS конечная точка потоковой передачи выступает в качестве "сервера-источника", передающего отформатированное содержимое HLS и DASH на клиентские проигрыватели, поддерживающие потоковую передачу с переменной скоростью с использованием популярных форматов. Кроме того, конечная точка потоковой передачи поддерживает множество функций, таких как JIT, динамическая упаковка с защитой содержимого или без нее, для доступа ко всем основным устройствам (например, устройствам iOS и Android).
В настоящее время большинство браузеров и мобильных устройств на рынке поддерживают и распознают протоколы потоковой передачи HLS или DASH. Например, для iOS требуется, чтобы потоки доставлялись в формате HTTP Live Streaming (HLS), а устройства Android поддерживали HLS, а также MPEG DASH в определенных моделях (или с помощью проигрывателя уровня приложения Exoplayer для устройств Android).
В Службах мультимедиа конечная точка потоковой передачи (источник) — это служба динамической (JIT) упаковки и служба источника, которая может в реальном времени и по запросу доставлять содержимое непосредственно в клиентское приложение проигрывателя. Она использует один из распространенных протоколов потоковой передачи мультимедиа, упомянутых в следующем разделе. Динамическая упаковка — это возможность, которая по умолчанию предоставляется для конечных точек потоковой передачи.
Преимущества JIT-упаковки:
- Вы можете хранить все файлы в стандартном формате MP4.
- Вам не нужно хранить несколько копий статических упакованных форматов HLS и DASH в хранилище BLOB-объектов, что сокращает объем видеосодержимого и снижает затраты на хранение.
- Вы можете мгновенно воспользоваться преимуществами новых обновлений протокола и изменений в спецификациях без необходимости повторно упаковать статическое содержимое в каталог.
- Вы можете доставлять содержимое с шифрованием или без drm, используя те же MP4-файлы в хранилище.
- Вы можете динамически фильтровать или изменять манифесты с помощью простых или глобальных фильтров на уровне ресурсов, чтобы удалить определенные дорожки, разрешения, языки или более короткие выделяющиеся клипы из одних и тех же MP4-файлов без повторного кодирования или повторного рендеринга содержимого.
Подготовка исходных файлов к доставке
Чтобы воспользоваться преимуществами динамической упаковки, закодируйте мезонинный (исходный) файл в набор файлов MP4 с одной или несколькими скорости (iso Base Media 14496-12). Закодированные видеофайлы и файлы конфигурации потоковой передачи будут находиться в выходном ресурсе. Из этого набора файлов можно использовать динамическую упаковку для доставки видео через протоколы потокового мультимедиа.
Как правило, вы будете использовать стандартный кодировщик Службы мультимедиа Azure для создания этого содержимого с помощью предустановок Службы кодирования с учетом содержимого или предустановок с адаптивной скоростью. Оба варианта создают набор MP4-файлов, готовых для потоковой передачи и динамической упаковки.
Кроме того, можно выбрать кодирование с помощью внешней службы, локальной или на собственных виртуальных машинах или бессерверных приложениях-функциях. Содержимое, кодированное извне, может быть передано в ресурс для потоковой передачи при условии, что он соответствует требованиям к кодировке для форматов потоковой передачи с переменной скоростью. Пример проекта для передачи предварительно закодированного файла MP4 для потоковой передачи доступен в примерах пакета SDK для .NET — см. статью Потоковая передача существующих MP4-файлов.
Динамическая упаковка Служб мультимедиа Azure поддерживает только видео- и аудиофайлы в формате контейнера MP4. Звуковые файлы должны быть закодированы в контейнер MP4, а также использовать альтернативные кодеки, например Dolby.
Сделать видео доступными для потоковой передачи
Чтобы сделать видео в закодированном ресурсе доступными для воспроизведения клиентам, опубликуйте ресурс с помощью указателя потоковой передачи и создайте соответствующие URL-адреса потоковой передачи HLS и DASH. Изменив протокол, используемый в запросе формата URL-адреса, служба предоставит соответствующий манифест потоковой передачи (HLS, MPEG DASH).
В результате вам нужно только хранить и оплачивать файлы только в одном формате хранения (MP4), а Службы мультимедиа будут создавать и обслуживать соответствующие манифесты HLS или DASH на основе запросов от проигрывателей клиентов.
Если вы планируете защитить содержимое с помощью динамического шифрования Media Services, см. раздел Потоковые протоколы и типы шифрования.
Доставка HLS
Динамическая упаковка HLS
Клиент потоковой передачи может указать следующие форматы HLS. Мы рекомендуем использовать формат CMAF для совместимости с последними проигрывателями и устройствами iOS. Для устаревших устройств доступны также форматы v4 и v3, просто измените строку запроса формата.
Протокол | Строка форматирования | Пример |
---|---|---|
HLS CMAF | format=m3u8-cmaf | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-cmaf) |
HLS V4 | format=m3u8-aapl | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-aapl) |
HLS V3 | format=m3u8-aapl-v3 | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-aapl-v3) |
Примечание
Предыдущие рекомендации от Apple предполагали передачу только аудиоданных для сетей с низкой пропускной способностью. В настоящее время кодировщик Служб мультимедиа автоматически создает дорожку, включающую только аудио. Рекомендации Apple теперь указывают, что не следует включать дорожку только с аудио, особенно для проката на Apple TV. Чтобы проигрыватель не переключался по умолчанию на дорожку только с аудио, мы предлагаем включить тег "audio-only=false" в URL-адрес, который удаляет аудио-версию в HLS, или просто использовать HLS-V3. Например, http://host/locator/asset.ism/manifest(format=m3u8-aapl,audio-only=false)
.
Коэффициент упаковки HLS для VOD
Чтобы управлять коэффициентом упаковки содержимого VOD для старых форматов HLS, можно задать тег метаданных fragmentsPerHLSSegment в файле .ism, чтобы управлять коэффициентом упаковки по умолчанию 3:1 для сегментов TS, доставляемых из более старых манифестов формата HLS v3 и v4. Изменение этого параметра требует непосредственного изменения файла .ism в хранилище для настройки коэффициента упаковки.
Пример манифеста сервера .ism с параметром fragmentsPerHLSSegment, установленным в значение 1.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
<meta name="formats" content="mp4" />
<meta name="fragmentsPerHLSSegment" content="1"/>
</head>
<body>
<switch>
...
</switch>
</body>
</smil>
Доставка DASH
Динамическая упаковка DASH
Клиент потоковой передачи может указать следующие форматы MPEG-DASH:
Протокол | Строка форматирования | Пример |
---|---|---|
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) |
MPEG-DASH CSF (устаревший) | format=mpd-time-csf | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-csf) |
Доставка манифестов Smooth Streaming
Динамическая упаковка Smooth Streaming
Клиент потоковой передачи может указать следующие форматы Smooth Streaming:
Протокол | Примечания и примеры |
---|---|
Smooth Streaming | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest |
Smooth Streaming 2.0 (устаревший манифест) | По умолчанию формат манифеста Smooth Streaming содержит тег повтора (r-tag). Однако некоторые проигрыватели не поддерживают r-tag . Клиенты с этими проигрывателями могут использовать формат, который отключает r-tag.https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=fmp4-v20) |
Примечание
Для Smooth Streaming требуется, чтобы в вашем потоке присутствовали видео- и аудиоданные.
Рабочий процесс для потокового воспроизведения по запросу
Далее описаны этапы обычного рабочего процесса потоковой передачи в Службах мультимедиа, при котором динамическая упаковка используется с кодировщиком (цен. категория "Стандартный") в Службах мультимедиа Azure.
Отправьте входной файл например MP4, QuickTime, MOV или другого поддерживаемого формата. Этот файл также называется мезонинным или исходным. Список поддерживаемых форматов см. в статье Standard Encoder formats and codecs (Форматы и кодеки кодировщика ценовой категории "Стандартный").
Закодируйте мезонинный файл в набор MP4-файлов с адаптивной скоростью в формате H.264 или AAC.
Если у вас уже есть закодированные файлы и требуется только скопировать их и выполнить потоковую передачу, используйте API CopyVideo и CopyAudio. В результате будет создан MP4-файл с манифестом потоковой передачи (ISM-файл).
Кроме того, можно просто создать файл .ism и .ismc в предварительно закодированном файле, поскольку он закодирован с использованием правильных параметров потоковой передачи с переменной скоростью (обычно это 2-секундные группы GOP, расстояния ключевых кадров от мин. и макс. 2 секунд, а также кодирование в режиме постоянной скорости (CBR)).
Дополнительные сведения о создании файлов .ism (манифеста сервера) и .ismc (клиентские манифесты) для потоковой передачи из существующего предварительно закодированного MP4-файла см. в примере пакета SDK для .NET существующего потока в формате MP4.
Опубликуйте выходной ресурс, который содержит набор MP4-файлов с адаптивной скоростью. Публикация выполняется путем создания указателя потоковой передачи.
Создайте URL-адреса, которые предназначены для различных форматов (HLS, MPEG-DASH и Smooth Streaming). Конечная точка потоковой передачи возьмет на себя выдачу надлежащего манифеста и обработку запросов для всех форматов.
Путь скачивания на представленном выше изображении нужен только для демонстрации того, что MP4-файл можно скачать напрямую через конечную точку потоковой передачи (источник), если в указателе потоковой передачи настроена политика потоковой передачи для скачивания.
Динамический упаковщик не изменяет файл. При необходимости вы можете использовать интерфейсы API хранилища BLOB-объектов Azure для прямого доступа к MP4 и поэтапной загрузки, если хотите обойти функции конечной точки потоковой передачи (источник).
Кодирование в MP4-файлы с адаптивной скоростью
В ресурсах по указанным ниже ссылкам показаны примеры кодирования видео с помощью Служб мультимедиа:
- Используйте кодирование с учетом содержимого.
- Примеры кода для кодирования со стандартным кодировщиком с помощью .NET
Просмотрите список поддерживаемых входных форматов и кодеков стандартного кодировщика.
Рабочий процесс для потоковой трансляции в реальном времени
В реальном событии можно задать сквозное кодирование (локальный динамический кодировщик отправляет поток с несколькими скоростями) или кодирования в реальном времени (локальный динамический кодировщик отправляет односкоростной поток).
Ниже описан типичный рабочий процесс для потоковой трансляции с динамической упаковкой.
- Создайте событие прямой трансляции.
- Получите URL-адрес приема и настройте использование URL-адреса в локальном кодировщике для отправки веб-канала входного потока.
- Получите URL-адрес для предварительного просмотра, чтобы проверить получение входных данных от кодировщика.
- Создайте ресурс.
- Создайте компонент выходных данных прямой трансляции с использованием имени созданного ресурса.
Выходные данные потоковой трансляции архивируют поток в ресурс. - Создайте указатель потоковой передачи со встроенным типом политики потоковой передачи.
Если вы хотите зашифровать свое содержимое, ознакомьтесь с обзором системы защиты содержимого. - Создайте список путей на основе указателя потоковой передачи, чтобы получать URL-адреса для использования.
- Получите имя узла для конечной точки потоковой передачи, с которой должна идти потоковая передача.
- Создайте URL-адреса, которые предназначены для различных форматов (HLS, MPEG-DASH и Smooth Streaming). Конечная точка потоковой передачи берет на себя выдачу правильного манифеста и обработку запросов для разных форматов.
Сведения о потоковой трансляции в Службах мультимедиа версии 3 см. в статье здесь.
Видеокодеки, поддерживаемые для динамической упаковки
Динамическая упаковка поддерживает видеофайлы в формате файла контейнера MP4 и содержащие видео, закодированное с помощью H.264 (MPEG-4 AVC или AVC1) либо H.265 (HEVC, hev1 или hvc1).
Примечание
С динамической упаковкой успешно протестирована трансляция видео с разрешением до 4K и частотой до 60 кадров в секунду.
Аудиокодеки, поддерживаемые для динамической упаковки
Динамическая упаковка также поддерживает аудиофайлы, которые хранятся в формате контейнера файла MP4, содержащего закодированный звуковой поток в одном из следующих кодеков:
AAC (AAC-LC, HE-AAC v1 или HE-AAC v2).
Dolby Digital Plus (Enhanced AC-3 или E-AC3). Для работы с динамической упаковкой закодированный аудиофайл должен храниться в формате контейнера MP4.
Dolby Atmos
Потоковая передача содержимого Dolby Atmos поддерживается такими стандартами, как протокол MPEG-DASH с форматом потоковой передачи Common Streaming Format (CSF) или форматом Common Media Application Format (CMAF) фрагментированного MP4, а также через HTTP Live Streaming (HLS) со CMAF.
DTS
Кодеки DTS, поддерживаемые форматами упаковки DASH-CSF, DASH-CMAF, HLS-M2TS и HLS-CMAF:- DTS Digital Surround (dtsc);
- DTS-HD High Resolution и DTS-HD Master Audio (dtsh);
- DTS Express (dtse);
- DTS-HD Lossless (no core) (dtsl).
Динамическая упаковка поддерживает несколько звуковых дорожек вывода с DASH или HLS (версии 4 или более поздней) для потоковой передачи ресурсов, у которых несколько звуковых дорожек на разных языках и с разными кодеками.
Чтобы работать с динамической упаковкой, для всех приведенных выше аудиокодеков закодированный аудиофайл должен храниться в формате контейнера MP4. Служба не поддерживает необработанные форматы файлов элементарного необработанного потока в хранилище BLOB-объектов (например, DTS, AC3).
Для упаковки аудиофайлов поддерживаются только файлы MP4 в расширении MP4A.
Ограничения
Ограничения для аудио в формате AAC 5.1 в iOS
Устройства Apple iOS не поддерживают аудиокодек AAC 5.1. Многоканальный звук нужно кодировать с помощью кодеков Dolby Digital или Dolby Digital Plus.
Подробные сведения см. в статье HLS authoring specification for apple devices (Спецификации по разработке с использованием HLS для устройств Apple).
Примечание
Службы мультимедиа не поддерживают кодирование в цифровых форматах Dolby Digital, Dolby Digital Plus или Dolby Digital Plus с многоканальными форматами звука Dolby Atmos.
Звук Dolby Digital
Динамическая упаковка в Службах мультимедиа в настоящее время не поддерживает файлы, которые содержат звук Dolby Digital (AC3), так как компания Dolby объявила этот кодек устаревшим.
Манифесты
В динамической упаковке Служб мультимедиа динамически создаются манифесты клиентов потоковой передачи для HLS, MPEG-DASH и Smooth Streaming на основе запроса формата в URL-адресе.
Файл манифеста содержит потоковые метаданные, например тип дорожки (звук, видео или текст), имя дорожки, время начала и окончания, скорость (качество), языки дорожки, окно представления (скользящее окно фиксированной длительности), видеокодек (FourCC). Кроме того, он предписывает проигрывателю получить следующий фрагмент, предоставляя информацию о следующих доступных для воспроизведения фрагментах видео и их расположении. Фрагменты (или сегменты) — это фактические блоки видеосодержимого.
Примеры
HLS
Ниже приведен пример файла манифеста HLS, также называемого главным списком воспроизведения HLS:
#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-DASH
Ниже приведен пример файла манифеста MPEG-DASH, также называемого форматом описания представления мультимедиа (MPD) MPEG-DASH:
<?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 Streaming
Ниже приведен пример файла манифеста Smooth Streaming:
<?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>
Именование дорожек в манифесте
Если в ISM-файле указано имя звуковой дорожки, Службы мультимедиа добавляют элемент Label
в AdaptationSet
, чтобы указать структурные сведения для конкретной звуковой дорожки. Пример выходного манифеста DASH:
<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
для отображения в пользовательском интерфейсе.
Сигнальные звуковые описания дорожек
Вы можете добавить в видео дорожку речевого сопровождения, чтобы помочь слабовидящим клиентам следить за видеозаписью, слушая повествование. Вам необходимо добавлять заметки к звуковой дорожке в качестве звукового описания в манифесте. Для этого добавьте в файл .ism. параметры "специальные возможности" и "роль". Вы должны правильно задать эти параметры, чтобы звуковая дорожка передавалась в качестве звукового описания. Например, добавьте <param name="accessibility" value="description" />
и <param name="role" value="alternate"
в ISM-файл для определенной звуковой дорожки.
Манифест Smooth Streaming
При воспроизведении потоковой передачи Smooth Streaming для этой звуковой дорожки манифест будет содержать значения в атрибутах Accessibility
и Role
. Например, Role="alternate" Accessibility="description"
будет добавлен в элемент StreamIndex
, чтобы указать, что это звуковое описание.
Манифест DASH
Чтобы сигнализировать о звуковом описании, для манифеста DASH будут добавлены следующие два элемента:
<Accessibility schemeIdUri="urn:mpeg:dash:role:2011" value="description"/>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="alternate"/>
Список воспроизведения HLS
Для HLS версии 7 и выше (format=m3u8-cmaf)
при получении сигнала для дорожки звукового описания список воспроизведения будет содержать AUTOSELECT=YES,CHARACTERISTICS="public.accessibility.describes-video"
.
Фильтрация динамических манифестов
Чтобы контролировать количество дорожек, форматы, скорость и окно времени презентации для передачи на проигрыватели, вы можете использовать динамическую фильтрацию с помощью динамического упаковщика Служб мультимедиа. Дополнительные сведения см. в статье Pre-filtering manifests with Dynamic Packager (Предварительная фильтрация манифестов с помощью динамического упаковщика).
Динамическое шифрование для DRM
Вы можете использовать динамическое шифрование, чтобы динамически шифровать содержимое в режиме реального времени или по требованию с помощью AES-128 или трех основных систем управления цифровыми правами (DRM): Microsoft PlayReady, Google Widevine и Apple FairPlay. Авторизованным клиентам также предоставляется служба доставки ключей AES и лицензий DRM. Чтобы узнать больше, ознакомьтесь со статьей о динамическом шифровании.
Примечание
Widevine — это служба, которая предоставляется компанией Google Inc. и подпадает под условия предоставления услуг и политику конфиденциальности Google Inc.
Справка и поддержка
Вы можете обратиться к Службам мультимедиа с вопросами или следить за нашими обновлениями одним из следующих способов:
- ВОПРОСЫ И ОТВЕТЫ
-
Stack Overflow. Пометьте вопросы тегом
azure-media-services
. - @MSFTAzureMedia или используйте @AzureSupport , чтобы запросить поддержку.
- Отправьте запрос в службу поддержки через портал Azure.