фильтры;

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


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

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

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

Фильтры — это серверные правила, с помощью которых пользователи могут выполнять различные действия, в том числе перечисленные ниже.

  • Воспроизведение только части видео (вместо воспроизведения видео целиком). Пример:
    • Сокращение манифеста для отображения субклипа текущего события ("фильтрация субклипов") или
    • Обрезка начала видео ("обрезка видео").
  • Доставка только указанных представлений и/или языковых дорожек, поддерживаемых устройством, на котором воспроизводится содержимое ("фильтрация представлений").
  • Настройка окна представления (DVR) для предоставления ограниченной длительности окна DVR в проигрывателе ("настройка окна представления").

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

Типы фильтров

Существует два типа фильтров.

  • Фильтры учетных записей (глобальные) — применимы к любому ресурсу в учетной записи Служб мультимедиа Azure и действуют в течение всего времени ее существования.
  • Фильтры ресурсов (локальные) — применимы только к тому ресурсу, с которым фильтр был связан при создании, и действуют в течение времени существования ресурса.

Фильтры учетных записей и фильтры ресурсов используют одинаковые свойства для определения и описания фильтра. Во всех случаях, кроме создания фильтра ресурса, необходимо указать имя ресурса, с которым требуется связать фильтр.

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

Для описания фильтров можно использовать указанные ниже свойства.

Имя Описание
firstQuality Первая качественная скорость фильтра.
presentationTimeRange Диапазон времени презентации манифеста трансляции. Это свойство используется для фильтрации начальной и конечной точек манифеста, длины окна презентации и начального положения прямой трансляции.
Дополнительные сведения см. в разделе PresentationTimeRange.
tracks Условия выбора дорожек. Дополнительные сведения см. в разделе tracks.

presentationTimeRange

Это свойство используется с фильтрами ресурсов. Это свойство не рекомендуется задавать с фильтрами учетных записей.

Имя Описание
startTimestamp Применяется к видео по запросу (VoD) и к потоковой трансляции.
Это значение типа long, которое представляет абсолютное значение начальной точки потока. Оно округляется до начала ближайшей из следующих групп изображений. Используются единицы шкалы времени, поэтому значение endTimestamp=150000000 обозначает позицию 15 секунд.
Используйте startTimestamp и endTimestamp, чтобы обрезать фрагменты для списка воспроизведения (включаемые в манифест).
Например, значения startTimestamp=40000000 и endTimestamp=100000000 со стандартной шкалой времени создадут список воспроизведения с фрагментами презентации VoD за период с 4-й по 10-ю секунды трансляции. Если фрагмент выходит за границы, он будет включен в манифест целиком.
endTimestamp Применяется для видео по запросу (VoD).
Во время потоковых трансляций это свойство игнорируется. Оно применяется по окончании презентации, когда поток преобразуется в VoD.
Это значение типа long, которое представляет абсолютное значение точки завершения презентации с округлением до начала ближайшей GOP. Используются единицы шкалы времени, поэтому значение endTimestamp=1800000000 обозначает позицию 3 минуты.
Используйте startTimestamp и endTimestamp, чтобы обрезать фрагменты для списка воспроизведения (включаемые в манифест).
Например, значения startTimestamp=40000000 и endTimestamp=100000000 со стандартной шкалой времени создадут список воспроизведения с фрагментами презентации VoD за период с 4-й по 10-ю секунды трансляции. Если фрагмент выходит за границы, он будет включен в манифест целиком.
timescale Применяется ко всем меткам времени и длительностям в диапазоне времени презентации, и выражается в числе приращений за одну секунду.
По умолчанию используется значение 10000000, то есть десять миллионов приращений за одну секунду, каждое из которых имеет длину 100 наносекунд. Однако значение может отличаться в зависимости от источника видео или если вы используете трансляцию с кодировкой в облаке (по умолчанию — 90 кГц или 90000 для видео).
Например, если вы хотите установить для startTimestamp значение 30 секунд, при стандартной шкале времени следует использовать значение 300000000. Обязательно проверьте манифест ресурса и убедитесь, что шкала времени для видеодорожки находится в заданном масштабе. При использовании трансляций с кодировкой шкала времени может быть в диапазоне 90 кГц (90000) для видеодорожек и 48 кГц (48000) для звуковых дорожек.
liveBackoffDuration Применяется только к потоковой трансляции.
Это значение определяет последнюю динамическую точку, к которой может перейти клиент.
С помощью этого свойства можно отложить позицию воспроизведения и создать на стороне сервера буфер для проигрывателей.
Для этого свойства используются единицы шкалы времени.
Максимальная продолжительность задержки потоковой трансляции составляет 3000000000 (300 секунд).
Например, значение 2000000000 означает, что последнее доступное содержимое отложено на 20 секунд от реальной границы прямой трансляции.
presentationWindowDuration Применяется только к потоковой трансляции.
Используйте presentationWindowDuration, чтобы применить скользящее окно фрагментов для включения в список воспроизведения.
Для этого свойства используются единицы шкалы времени.
Например, задайте значение presentationWindowDuration = 1200000000, чтобы применить двухминутное скользящее окно. В список воспроизведения будут включены данные мультимедиа за две минуты до крайней позиции прямой трансляции. Если фрагмент выходит за границы, он будет включен в список воспроизведения целиком. Минимальная продолжительность окна презентации составляет 60 секунд.
forceEndTimestamp Применяется только к потоковой трансляции.
Указывает, должно ли быть задано свойство endTimestamp. Если имеет значение true, то endTimestamp должно обязательно присутствовать, иначе возвращается код ошибки Bad Request (Недопустимый запрос).
Допустимые значения: false, true.

Дорожки

Вы указываете список условий для фильтрации свойств дорожек (FilterTrackPropertyConditions) с учетом того, какие дорожки вашего потока (потоковой трансляции или видео по запросу) нужно включить в динамически создаваемый манифест. Фильтры объединяются с помощью логических операций AND и OR.

Условия фильтрации свойств дорожек описывают типы дорожек, значения (приведенные в таблице ниже) и операции (Equal, NotEqual).

Имя Описание
Bitrate Фильтрация по скорости дорожки.

Наилучшее значение — диапазон скоростей (в битах в секунду). Пример: "0-2427000".

Примечание. Можно использовать конкретное значение скорости, например 250000 (бит в секунду), но такой подход не рекомендуется, так как точная скорость может меняться от ресурса к ресурсу.
FourCC Фильтрация по значению FourCC дорожки.

Это значение является первым элементом формата кодеков согласно стандарту RFC 6381. Сейчас поддерживаются перечисленные ниже кодеки.
Для видео: "avc1", "hev1", "hvc1"
Для звука: "mp4a", "ec-3"

Чтобы определить значения FourCC для дорожек в ресурсе, получите и просмотрите файл манифеста.
Язык Фильтрация по языку дорожки.

Это значение представляет собой тег языка, который требуется включить, как указано в стандарте RFC 5646. Например, en.
имя; Фильтрация по имени дорожки.
Тип Фильтрация по типу дорожки.

Допускаются следующие значения: "video", "audio" и "text".

Пример

В следующем примере определяется фильтр потоковой трансляции:

{
  "properties": {
    "presentationTimeRange": {
      "startTimestamp": 0,
      "endTimestamp": 170000000,
      "presentationWindowDuration": 9223372036854776000,
      "liveBackoffDuration": 0,
      "timescale": 10000000,
      "forceEndTimestamp": false
    },
    "firstQuality": {
      "bitrate": 128000
    },
    "tracks": [
      {
        "trackSelections": [
          {
            "property": "Type",
            "operation": "Equal",
            "value": "Audio"
          },
          {
            "property": "Language",
            "operation": "NotEqual",
            "value": "en"
          },
          {
            "property": "FourCC",
            "operation": "NotEqual",
            "value": "EC-3"
          }
        ]
      },
      {
        "trackSelections": [
          {
            "property": "Type",
            "operation": "Equal",
            "value": "Video"
          },
          {
            "property": "Bitrate",
            "operation": "Equal",
            "value": "3000000-5000000"
          }
        ]
      }
    ]
  }
}

Фильтрация манифестов HLS или DASH при создании указателя потоковой передачи

Службы мультимедиа позволяют создать предварительно отфильтрованный указатель потоковой передачи. Для этого нужно включить коллекцию фильтров в свойство фильтра в сущности указателя потоковой передачи. Таким образом можно предварительно отфильтровать все манифесты в указателе потоковой передачи. Исходный манифест больше не будет доступен с помощью этого указателя потоковой передачи. Клиенты, запрашивающие URL-адреса для DASH или HLS у отфильтрованного указателя потоковой передачи, смогут получить только отфильтрованный ответ. Это полезно в ситуациях, когда нужно опубликовать только часть ресурса и не дать пользователям получить доступ к полному исходному манифесту ресурса, управляя строкой запроса URL-адреса манифеста HLS или DASH.

Вы можете указать список фильтров ресурсов или учетных записей, которые будут применяться к указателю потоковой передачи. Динамический упаковщик применяет этот список фильтров совместно с теми, которые клиент указывает в URL-адресе. Такое сочетание создает Динамический манифест, основанный на фильтрах, указанных в URL-адресах и заданных в указателе потоковой передачи.

Обновление фильтров

Фильтры и указатели потоковой передачи можно обновлять на лету, но имейте в виду, что обновление на внешних веб-серверах может занять до 10 секунд. При обновлении указателя потоковой передачи, который уже был опубликован и использован в рабочей среде, могут возникнуть проблемы с кэшированием содержимого нижестоящей сети CDN.

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

Если вам нужно изменить определение фильтра, попробуйте создать новый фильтр и добавить его в URL-адрес указателя потоковой передачи или опубликовать новый указатель потоковой передачи с прямой ссылкой на обновленный фильтр.

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

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